1byte _c语言utf8解码">
赞
踩
<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>
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。