烈火建站学院(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读取时却读出来不能正确显示?相信很多朋友遇到过这种情... 09-17 12:34