js转UTF8
时间:2010-08-24 来源:byzzz
function hex(a){ if(a<256) return "%"+hexmap[a>>4]+hexmap[a&0xf]; else return hex(a>>8)+hex(a&0xf); }
function encodeUTF8(d) { var utft = "";var a=d.toString(); for(var n=0; n<a.length; n++) { var c=a.charCodeAt(n); if(c<128){ if(c==46||c==40||c==41||(c>47&&c<58)||(c>64&&c<91)||(c>96&&c<123)){ utft += a.charAt(i); }else{ utft += hex(c); } } else if(127<c && c<0x800) { utft += hex((c>>6)|192); utft += hex((c&63)|128); } else if(0x7ff<c && c<0x10000) { utft += hex((c>>12)|224); utft += hex(((c>>6)&63)|128); utft += hex((c&63)|128); } else if(0xffff<c && c<0x200000) { utft += hex((c>>18)|0xf0); utft += hex(((c>>12)&63)|128); utft += hex(((c>>6)&63)|128); utft += hex((c&63)|128); } else if(0x1FFFFF<c && c<0x4000000) { utft += hex((c>>24)|0xf8); utft += hex(((c>>18)&63)|128); utft += hex(((c>>12)&63)|128); utft += hex(((c>>6)&63)|128); utft += hex((c&63)|128); } else if(0x3FFFFFF<c && c<0x80000000) { utft += hex((c>>30)|0xfc); utft += hex(((c>>24)&63)|128); utft += hex(((c>>18)&63)|128); utft += hex(((c>>12)&63)|128); utft += hex(((c>>6)&63)|128); utft += hex((c&63)|128); } } return utft; }
相关阅读 更多 +