为什么用js 读取Cookie时中文是乱码啊?尝试了以下方法是不行的,有知道的没有啊?提一下醒,本地的Cookie 打开时是正确的,不是乱码
function getCookie(name)//取cookies函数
{
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
alert(unescape(arr[2]));
alert(encodeURI(arr[2]));
if (arr != null) return unescape(arr[2]); return null;
//if (arr != null) return decodeURIComponent(arr[2]); return null;
//if (arr != null) return unescape(encodeURI(arr[2])); return null;
}
function Get_Cookie(name) {
var start = document.cookie.indexOf(name+"=");
var len = start+name.length+1;
if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
if (start == -1) return null;
var end = document.cookie.indexOf(";",len);
if (end == -1) end = document.cookie.length;
return decodeURI(document.cookie.substring(len,end));
}
function GetCookie2(name) {
var strArg = name + "=";
var nArgLen = strArg.length;
var nCookieLen = documents.cookie.length;
var nEnd;
var i = 0;
var j; while (i < nCookieLen) {
j = i + nArgLen;
if (documents.cookie.substring(i, j) == strArg) {
nEnd = documents.cookie.indexOf(";", j);
if (nEnd == -1) nEnd = documents.cookie.length;
return DecodeCookie(unescape(documents.cookie.substring(j, nEnd)));
}
i = documents.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function getCookie3(objName) {
var arrStr = document.cookie.split("; ");
for (var i = 0; i < arrStr.length; i++) {
var temp = arrStr[i].split("=");
if (temp[0] == objName) return decodeURIComponent(escape(unescape(temp[1])));
}
}
function getCookie(name)//取cookies函数
{
var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
alert(unescape(arr[2]));
alert(encodeURI(arr[2]));
if (arr != null) return unescape(arr[2]); return null;
//if (arr != null) return decodeURIComponent(arr[2]); return null;
//if (arr != null) return unescape(encodeURI(arr[2])); return null;
}
function Get_Cookie(name) {
var start = document.cookie.indexOf(name+"=");
var len = start+name.length+1;
if ((!start) && (name != document.cookie.substring(0,name.length))) return null;
if (start == -1) return null;
var end = document.cookie.indexOf(";",len);
if (end == -1) end = document.cookie.length;
return decodeURI(document.cookie.substring(len,end));
}
function GetCookie2(name) {
var strArg = name + "=";
var nArgLen = strArg.length;
var nCookieLen = documents.cookie.length;
var nEnd;
var i = 0;
var j; while (i < nCookieLen) {
j = i + nArgLen;
if (documents.cookie.substring(i, j) == strArg) {
nEnd = documents.cookie.indexOf(";", j);
if (nEnd == -1) nEnd = documents.cookie.length;
return DecodeCookie(unescape(documents.cookie.substring(j, nEnd)));
}
i = documents.cookie.indexOf(" ", i) + 1;
if (i == 0) break;
}
return null;
}
function getCookie3(objName) {
var arrStr = document.cookie.split("; ");
for (var i = 0; i < arrStr.length; i++) {
var temp = arrStr[i].split("=");
if (temp[0] == objName) return decodeURIComponent(escape(unescape(temp[1])));
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货