В этой статье описывается метод реализации JS Base64, кодируя UTF-8 в китайских струнах. Поделитесь этим для вашей ссылки, следующим образом:
Строка для кодирования: «Выберите имя пользователя из пользователя»
Используйте Java для кодирования, Java Program:
String sql = "Выберите имя пользователя из пользователя"; string encodestr = new String (base64.encode (sql.getbytes ("utf-8"))); // кодирование System.out.println (Encodest);получать:
C2VSZWN0IOEUQOAIT+WQJSBMCM9TIOEUQOAITW ==
Декодировать на Java:
sql = new String (base64.decode (sql.getbytes ()), "utf-8");
Зачем использовать GetBytes («UTF-8») в коде Java? Поскольку кодировки по умолчанию в средах Windows и Linux различны, чтобы ваша программа получила одинаковое кодирование на разных платформах, вы должны указать кодирование.
Хотя кодирование HTML и JS является UTF-8, китайская кодировка, полученная JS со страницы, составляет UTF-16, поэтому непосредственно закодированные китайцы с Base64 получит неправильный результат, поэтому нам нужно сначала перенести из UTF-16 в UTF-8, а затем кодировать его.
<! Doctype html public "-// w3c // dtd xhtml 1.0 transitional // en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns = "http://www.w3.org/1999/xhtml"> <Head> <title> </title> <meta http-equiv = "content-type" content = "text/html; charset = utf-8"/> <style type = "text/css"> <! Padding: 0px;} body, td {font-size: 9pt;}-> </style> <script type = "text/javascript"> <!-var keystr = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz012345789+/="/= "/=/="/= "/=/"/= "/=/="/= "/="/= "/="/= "/="/= "/="/= "/="/= "/="/= "/="/= "/="/= "/="/=/"/" Ansi-кодированная строковая функция encode64 (input) {var output = ""; var chr1, chr2, chr3 = "; var enc1, enc2, enc3, ec4 =" "; var i = 0; do {chr1 = into.charcodeat (i ++); chr2 = int. charcodeat (i ++); chr3 = chrancodeat (i ++); ((Chr1 & 3) << 4) | (Chr2 >> 4); Enc3 = ((Chr2 & 15) << 2) | (chr3 >> 6); ec4 = chr3 & 63; if (isnan (chr2)) {enc3 = ec4 = 64;} else if (isnan (chr3)) {enc4 = 64;} output = output + keystr.charat (enc1) + keystr.chharat (enc2) + keystr.charat (enc3) + keystr.charat (enc4); "; enc1 = ec2 = ec3 = ec4 =" ";} while (i <input.length); return output;} // преобразование кодируемой строки Base64 в ANSI-кодируемую строковую функцию decode64 (input) {var output =" "; var chr1, chr2, chr3 ="; var enc1, enc2, enc3, enc4 = "; {return "";} var base64test =/[^a-za-z0-9/+// =]/g; if (base64test.exec (input)) {return "";} do {enc1 = keystr.indexof (input.charat (i ++); enc2 = keystr.indexof (input.charat (i ++); keystr.indexof (input.charat (i ++)); enc4 = keystr.indexof (input.charat (i ++)); chr1 = (ec1 << 2) | (ENC2 >> 4); chr2 = ((ENC2 & 15) << 4) | (Enc3 >> 2); chr3 = ((Enc3 & 3) << 6) | ec4; output = output +string.fromCharcode (chr1); if (enc3! = 64) {output += string.fromCharcode (chr2);} if (enc4! = 64) {output += string.fromCharcode (chr3);} chr1 = chr2 = chr3 = "";; Enc1 = enc2 = enc3 = enc4 = "; output;} функция utf16to8 (str) {var out, i, len, c; out = ""; len = str.length; for (i = 0; i <len; i ++) {c = str.charcodeat (i); if ((c> = 0x0001) && (c <= 0x007f)) {out += str.charat (i); } else if (c> 0x07ff) {out += string.fromCharcode (0xe0 | ((C >> 12) & 0x0f)); out += string.fromCharcode (0x80 | ((C >> 6) & 0x3f)); out += string.fromCharcode (0x80 | ((C >> 0) & 0x3f)); } else {out += string.fromCharcode (0xc0 | ((C >> 6) & 0x1f)); out += string.fromCharcode (0x80 | ((C >> 0) & 0x3f)); }} return Out;} функция utf8to16 (str) {var out, i, len, c; var char2, char3; out = ""; len = str.length; i = 0; while (i <len) {c = str.charcodeat (i ++); Switch (C >> 4) {case 0: case 1: case 2: case 3: Случай 4: Случай 5: Случай 6: случай 7: // 0xxxxxx out += str.charat (i-1); перерыв; Случай 12: Случай 13: // 110x xxxx 10xx xxxx char2 = str.charcodeat (i ++); out += string.fromCharcode (((C & 0x1f) << 6) | (char2 & 0x3f)); перерыв; Случай 14: // 1110 xxxx 10xx xxxx char2 = str.charcodeat (i ++); char3 = str.charcodeat (i ++); out += string.fromCharcode (((C & 0x0f) << 12) | ((Char2 & 0x3f) << 6) | ((Char3 & 0x3f) << 0)); перерыв; }} return Out;} // Запуск кода тестирования var de = encode64 (utf16to8 ("Выберите имя пользователя из пользователя")); Document.Writeln (de+"<br>"); var ee = utf8to16 (decode64 (de)) документ.Все вышеупомянутые коды получаются из Интернета и получают правильные результаты после того, как они собрали вместе. Спасибо за ваши пожилые люди.
PS: Вот еще несколько кодировки Base64 и декодирования онлайн -инструментов, я считаю, что они будут использоваться в будущем разработке:
BASE64 Инструменты кодирования и декодирования:
http://tools.vevb.com/transcoding/base64
Онлайн -преобразование картинок Base64 Инструмент:
http://tools.vevb.com/transcoding/img2base64
For more information about JavaScript related content, please check out the topics of this site: "Summary of JavaScript switching effects and techniques", "Summary of JavaScript search algorithm skills", "Summary of JavaScript animation effects and techniques", "Summary of JavaScript errors and debugging techniques", "Summary of JavaScript data structures and algorithm skills", "Summary of Алгоритмы и методы обхода JavaScript »и« Сводка использования математических операций JavaScript ».
Я надеюсь, что эта статья будет полезна для каждого программирования JavaScript.