最近ASP和jS间的汉字Cookie乱码问题一直比较头痛,网上查了好多资料没搞定。
最后还是回归原始方法,找了一个ASP等同于JS escape的函数,在写入Cookie前进行加密,在JS端读取时用unescape解密就没有问题了。
后来一个小问题又困扰好久,在AJAX传入中文参数时没有加上escape进行加密处理,导致ASP获得中文乱码,加入后问题解决了。
附上类似JS的escape函数如下:
Function vbsEscape(str)
dim i,s,c,a
s=""
For i=1 to Len(str)
c=Mid(str,i,1)
a=ASCW(c)
If (a>=48 and a<=57) or (a>=65 and a<=90) or (a>=97 and a<=122) Then
s = s & c
ElseIf InStr("@*_+-./",c)>0 Then
s = s & c
ElseIf a>0 and a<16 Then
s = s & "%0" & Hex(a)
ElseIf a>=16 and a<256 Then
s = s & "%" & Hex(a)
Else
s = s & "%u" & Hex(a)
End If
Next
vbsEscape = s
End Function