JS获取客户端COOKIE,出现中文乱码。
我用ASP写COOKIE的时候,加了个处理编码的函数
'编码程序:
Function CodeCookie(str)
Dim i
Dim strRtn:strRtn=""
for i=len(str) to 1 step -1
strRtn=strRtn & AscW(mid(str,i,1))
if i<>1 then
strRtn = strRtn & "a" '用a作分隔符
end if
next
CodeCookie=strRtn
End Function
而用JS读取COOKIE的时候用了这个函数
//解码程序:
function DecodeCookie(str)
{
var strArr;
var strRtn="";
//document.write(str);
//str=str.replace("%2D","");
strArr=str.split("a");
for(var i=strArr.length-1;i>=0;i--)
{
strRtn+=String.fromCharCode(eval(strArr[i]));
}
return strRtn;
}
问题就出现了。
比如:对以下字符串编码“北京大立钢铁有限责任公司”
我用ASP写出来是这样的:21496a20844a20219a-29405a-27056a26377a-27455a-27486a31435a22823a20140a21271
而用JS写出来则是这样的:21496a20844a20219a%2D29405a%2D27056a26377a%2D27455a%2D27486a31435a22823a20140a21271
为什么符号“-”变成了“%2D”?
谢谢。