关于cookie的一个问题

scud 2000-01-08 04:02:00
在hmtl中用javascript设置一个username="我是我" ,(这是中文,不是英文)

查看cookie, username 的值保存为: %u6211%u662F%u6211

请问如何用perl语句或者相应perl的库 使这个值得到 "我是我",不是用javascript

--------- 如果使用 username="english" ,没有问题

-- 这是解析cookie的子程序,可以解析英文,中文不行

sub get_cookie {
local($chip, $val);
foreach (split(/; /, $ENV{'HTTP_COOKIE'})) {
# split cookie at each ; (cookie format is name=value; name=value; etc...)
# Convert plus to space (in case of encoding (not necessary, but recommended)
s/\+/ /g;
# Split into key and value.
($chip, $val) = split(/=/,$_,2); # splits on the first =.
# Convert %XX from hex numbers to alphanumeric
$chip =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
$val =~ s/%([A-Fa-f0-9]{2})/pack("c",hex($1))/ge;
# Associate key and value
$cookie{$chip} .= "\1" if (defined($cookie{$chip})); # \1 is the multiple separator
$cookie{$chip} .= $val;
}
}

谢谢
...全文
300 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
dannu 2000-10-09
  • 打赏
  • 举报
回复
这是一段用VB写的字符串转为Unicode码的函数,你可以参考一下...:)

Function c2u(str)
ss=str
l=len(ss)
for i=1 to l
c = Mid(ss,i,1)
c2u = c2u & "&#x" & Hex(AscW(c)) & ";"
next
End Function
scud 2000-10-07
  • 打赏
  • 举报
回复
要的就是函数,废话不用说
flyby 2000-09-29
  • 打赏
  • 举报
回复
cookie只需要知道它存在不存在
好像没必要解码
要解码得写一个函数了
flyby 2000-09-29
  • 打赏
  • 举报
回复
cookie只需要知道它存在不存在
好像没必要解码
要解码得写一个函数了
chenjp 2000-03-17
  • 打赏
  • 举报
回复
注意,JavaScript中用escape/unescape把非ASCII字符
转换为unicode ,而Perl对Cookie缺省状况不是unicode.
所以两种解决方法:
1.JavaScript中不要用escape/unescape,用明文。
2.Perl中解析unicode.

另外注意:对于IE,当不用escape/unescape时是明文,
但是Netscape要读此Cookie是,仍必须用unescape.
因为escape/unescape IE与Netscape的处理方法不同,
IE转换为unicode ,Netscape转换为汉字的编码。
scud 2000-01-28
  • 打赏
  • 举报
回复
什么解析出来是什么?

--上面的代码就不解析中文
King 2000-01-27
  • 打赏
  • 举报
回复
解释出来的是什么?
scud 2000-01-08
  • 打赏
  • 举报
回复
javascript 使用escape编码

2,204

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 CGI
社区管理员
  • CGI社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧