OneRedCat

古之立大事者,不惟有超世之才,亦必有坚忍不拔之志。 —— 苏轼

博客园 首页 新随笔 联系 订阅 管理

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;
}

posted on 2012-10-25 17:18  OneRedCat  阅读(430)  评论(0编辑  收藏  举报