我今天所做的是最重要的,因为我将永远不会再有今天

UTF8的编码解码函数

技术文档 4773浏览 0评论

<script>
function encode_utf8(rawtext) {
   rawtext = rawtext.replace(/\r\n/g,"\n");
   var utftext = "";
   for(var n=0; n<rawtext.length; n++)
       {
       //
       var c=rawtext.charCodeAt(n);
       // 0-127 => 1byte
       if (c<128)
           utftext += String.fromCharCode(c);
       // 127 - 2047 => 2byte
       else if((c>127) && (c<2048)) {
           utftext += String.fromCharCode((c>>6)|192);
           utftext += String.fromCharCode((c&63)|128);}
       // 2048 - 66536 => 3byte
       else {
           utftext += String.fromCharCode((c>>12)|224);
           utftext += String.fromCharCode(((c>>6)&63)|128);
           utftext += String.fromCharCode((c&63)|128);}
       }
   return utftext;
}
function decode_utf8(utftext) {
   var plaintext = ""; var i=0; var c=c1=c2=0;
   while(i<utftext.length)
       {
       c = utftext.charCodeAt(i);
       if (c<128) {
           plaintext += String.fromCharCode(c);
           i++;}
       else if((c>191) && (c<224)) {
           c2 = utftext.charCodeAt(i+1);
           plaintext += String.fromCharCode(((c&31)<<6) | (c2&63));
           i+=2;}
       else {
           c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2);
           plaintext += String.fromCharCode(((c&15)<<12) | ((c2&63)<<6) | (c3&63));
           i+=3;}
       }
   return plaintext;
}
</script>

转载请注明:自由的风 » UTF8的编码解码函数

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址