이 기사에서는 중국어 문자열에서 UTF-8의 Base64 인코딩을 구현하는 JS 방법에 대해 설명합니다. 다음과 같이 참조에 대해 공유하십시오.
인코딩 할 문자열 : "사용자에서 사용자 이름을 선택하십시오"
인코딩, Java 프로그램에 Java를 사용하십시오.
문자열 sql = "사용자에서 사용자 이름을 선택하십시오"; String encodest = new String (base64.encode (sql.getBytes ( "utf-8"))); // 인코딩 System.out.println (encodest);
얻다:
c2vszwn0ioeuqoait+wqjsbmcm9tioeuqoaitw ==
Java의 디코딩 :
sql = new String (base64.decode (sql.getBytes ()), "utf-8");
Java 코드에서 GetBytes ( "UTF-8")를 사용하는 이유는 무엇입니까? 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">-마진 {0px : 0px; 패딩 : 0px;} body, td {font-size : 9pt;}-> </style> <script type = "text/javaScript"> <!-var keystr = "abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyz0123456789+//646789 Ansi-Encoded String 함수 encode64 (입력) {var output = ""; var chr1, chr2, chr3 = ""; var enc1, enc2, enc3, enc4 = "; var i = 0; do {chr1 = input.charcodeat (i ++); chr2 = input.charcodeat (i ++); input.ch1 (i ++); 2; ENC2 = ((chr1 & 3) << 4) | (chr2 >> 4); enc3 = ((chr2 & 15) << 2) | (chr3 >> 6); enc4 = chr3 & 63; if (isnan (chr2)) {inc3 = enc4 = 64;} else if (isnan (chr3)) {enc4 = 64;} 출력 = 출력 + 키스트. chr3 = ""; enc1 = enc2 = enc3 = enc4 = "";} while (i <input.length); return output;} // base64 인코딩 된 문자열을 Ansi-Encoded String 함수 decode64 (입력)로 변환합니다. {var output = ""; var chr1, chr2, chr3 = ""; var enc1, enc3, enc4 =; 4! = 0) {return "";} var base64test =/[^a-za-z0-9/+/// =]/g; if (base64test.exec (input)) {return "";} do {enc1 = keystr.indexof (input.charat (i ++)); keystr. incyst. keystr.indexof (input.charat (i ++)); enc4 = keystr.indexof (input.charat (i ++)); chr1 = (Enc1 << 2) | (ENC2 >> 4); chr2 = ((ENC2 & 15) << 4) | (ENC3 >> 2); chr3 = ((ENC3 & 3) << 6) | Enc4; output = output +string.fromcharcode (chr1); if (enc3! = 64) {output += string.fromcharcode (chr2);} if (enc4! = 64) {output += string.fromcharcode (chr3);} chr1 = chr2 = chr3 = " input.length); return 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 ++); 스위치 (c >> 4) {사례 0 : 사례 1 : 사례 2 : 사례 3 : 사례 4 : 사례 5 : 사례 6 : // 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 (decode64 (de))) document.writeln (ee); // test code> </script> </head </body> </script> </script> </script> </script>위의 코드는 모두 인터넷에서 얻어지고 함께 조각 한 후 올바른 결과를 얻습니다. 선배들에게 감사드립니다.
추신 : 다음은 몇 가지 더 Base64 인코딩 및 디코딩 온라인 도구가 있습니다. 향후 개발에 사용될 것이라고 생각합니다.
Base64 인코딩 및 디코딩 도구 :
http://tools.vevb.com/transcoding/base64
온라인 사진 전환베이스 64 도구 :
http://tools.vevb.com/transcoding/img2base64
JavaScript 관련 컨텐츠에 대한 자세한 내용은이 사이트의 주제를 확인하십시오. "JavaScript 스위칭 효과 및 기술 요약", "JavaScript 검색 알고리즘 기술 요약", "JavaScript 애니메이션 효과 및 기술 요약", "Javascript 오류 및 디버깅 기술의 요약" "JavaScript 기술의 요약" "" "요약" "", Malgority Sknickes의 요약 "". JavaScript Traversal 알고리즘 및 기술 "및"JavaScript 수학 연산 사용 요약 "
이 기사가 모든 사람의 JavaScript 프로그래밍에 도움이되기를 바랍니다.