烈火建站学院(Bkjia.Com)PHP教程 PHP程序在COOKIE里写了点中文数据,而用Javascript读取时却读出来不能正确显示?相信很多朋友遇到过这种情况,前天搜索了一下,找到一种解决方法:PHP写COOKIE时以UTF-8编码写,而JS读出来的时候也解码一下就可以了,因为Javascript内部使用的是Unicode编码。
以下为引用的内容: /** * * URL encode / decode * **/
var Url = {
// public method for url encoding encode : function (string) { return escape(this._utf8_encode(string)); },
// public method for url decoding decode : function (string) { return this._utf8_decode(unescape(string)); },
// private method for UTF-8 encoding _utf8_encode : function (string) { string = string.replace(/\r\n/g,"\n"); var utftext = "";
for (var n = 0; n
var c = string.charCodeAt(n);
if (c utftext += String.fromCharCode(c); } else if((c > 127) && (c utftext += String.fromCharCode((c >> 6) | 192); utftext += String.fromCharCode((c & 63) | 128); } else { utftext += String.fromCharCode((c >> 12) | 224); utftext += String.fromCharCode(((c >> 6) & 63) | 128); utftext += String.fromCharCode((c & 63) | 128); }
}
return utftext; },
// private method for UTF-8 decoding _utf8_decode : function (utftext) { var string = ""; var i = 0; var c = c1 = c2 = 0;
while ( i
c = utftext.charCodeAt(i);
if (c string += String.fromCharCode(c); i++; } else if((c > 191) && (c c2 = utftext.charCodeAt(i+1); string += String.fromCharCode(((c & 31) i += 2; } else { c2 = utftext.charCodeAt(i+1); c3 = utftext.charCodeAt(i+2); string += String.fromCharCode(((c & 15) i += 3; }
}
return string; }
}
/** * 这段是读取Cookie */ function GetCookie(sName) { var mycookie = document.cookie.split("; "); for (var i = 0; i { var cookie1 = mycookie[i].split("="); if (cookie1[0] == sName) { return Url.decode(cookie1[1]); } } return null; }
|
http://www.bkjia.com/PHPjc/364219.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/364219.htmlTechArticle烈火建站学院(LieHuo.Net)PHP教程 PHP程序在COOKIE里写了点中文数据,而用Javascript读取时却读出来不能正确显示?相信很多朋友遇到过这种情...