[转载]纯js解决小偷的乱码.(强)

<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=0var 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>

posted on 2006-09-18 08:36  清雨轩  阅读(605)  评论(0)    收藏  举报

导航