Chinaunix
标题:
请教一个 JAVASCRIPT 问题。
[打印本页]
作者:
梦恋情人
时间:
2003-09-10 16:49
标题:
请教一个 JAVASCRIPT 问题。
[code]
我在CGI中把"汉字" 变为16进制 babad7d6 (去掉了%号的 %ba%ba%d7%d6)编码为格式。 保存在COOKIE中
在网面中 中使用下面的JAVASCRIPT 函数 还原后变成了乱码 ×
作者:
apile
时间:
2003-09-10 18:08
标题:
请教一个 JAVASCRIPT 问题。
Temp+='%'+str.substring(i,i+2);
作者:
梦恋情人
时间:
2003-09-10 18:39
标题:
请教一个 JAVASCRIPT 问题。
不行的,刚开始时也是 Temp+='%'+str.substring(i,i+2);
这样写的。
最后返回之前用 unescape(). 但是不行,
试过用escape()把中文字编码。得到的是 %u9383 这样的码,而不是 %FF ,
有高手,有其它办法吗?
作者:
apile
时间:
2003-09-10 18:53
标题:
请教一个 JAVASCRIPT 问题。
你為什麼要用escape???
Temp已經等於%ba%ba%d7%d6啦..
拿去http://xxxx/xxx.xx?abc=%ba%ba%d7%d6
Web Server 會自動幫你轉回來的...
如果你是要把babad7d6轉成gb碼的話...
可以考慮用$data = pack("H*","babad7d6");
一樣會轉回來...只是cookie也要用perl去切割..
%cookies = map split(/=/), split(/; /,$ENV{'HTTP_COOKIE'});
另外unescape是用來轉換Latin-1的字元..並非GB碼....
除非你的本文都是英文..否則還是用perl來處理比較好一點..:)
作者:
梦恋情人
时间:
2003-09-10 20:48
标题:
请教一个 JAVASCRIPT 问题。
CGI里没问题,我能处理。
babad7d6 是从COOKIE里读取的。我可不想为了这个值再去请求一次服务器。
问到底我的意思是用 JAVASCRIPT 怎么所 字符串%ba%ba%d7%d6 还原为中文。
作者:
apile
时间:
2003-09-12 10:15
标题:
请教一个 JAVASCRIPT 问题。
你可能有點誤會我的意思...:)我的意思是說..你如果用Perl寫CGI..
可以用
%cookies = map split(/=/), split(/; /,$ENV{'HTTP_COOKIE'});
取得cookie裡面的數值...然後用
$data=pack("H*",$cookies{"CCCC"});
將該中文字取出來..
然後再寫回javascript中....
print <<TTT;
<script language=javascript>;
alert($data+"");
</script>;
TTT
如果都要用javascript..因為目前我不在公司...身邊沒書..:)
下星期再找找看...
Best Regards..
作者:
梦恋情人
时间:
2003-09-12 18:13
标题:
请教一个 JAVASCRIPT 问题。
谢谢楼上的好心人,你也把我意思搞反了, 我是在页面(html文件)中用javascript取得的COOKIE中的值,(%d4%d3)然后想转换为中文字。
作者:
飞灰橙
时间:
2003-09-12 18:29
标题:
请教一个 JAVASCRIPT 问题。
为什么不把汉字先用escape编码,再放到cookie里?
作者:
apile
时间:
2003-09-15 08:40
标题:
请教一个 JAVASCRIPT 问题。
剛剛查了一下手邊的javascript語法辭典..只看到escape與unescape兩種,
只能轉換ISO-Latin-1與英文字,其他編碼,似乎沒有提供,也許對於java
script這種Client Side的語言..那是沒必要的..:)
建議你再改改代碼..為什麼不直接在cookie中使用中文??
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2