Chinaunix
标题:
求教,utf-8编码PHP文件设置中文cookie,客户端js读取乱码的问题?
[打印本页]
作者:
flytod
时间:
2006-04-21 12:54
标题:
求教,utf-8编码PHP文件设置中文cookie,客户端js读取乱码的问题?
所有的PHP文件和字符全部是utf-8编码的,整个网页也是utf-8编码的。
在PHP端执行setcookie('u','中文');
在客户端maxthon查看cookie信息,u=%E4%B8%AD%E6%96%87,其正好是‘中文’的utf-8编码。
这时我想在浏览器的html代码中,将cookie读出来,利用 somedom.innerHTML=这个值。
但在js中,无论怎么编码,出来的都是乱码。
使用phpinfo()来查看,
$_COOKIE['u'] 是 中文
$_SERVER["HTTP_COOKIE"] 是 u=?%E4%B8%AD%E6%96%87
前一个 $_COOKIE['u']怎么自动转码了?这点一直没有想明白?
作者:
tonera
时间:
2006-04-21 16:07
输出页面信息前用header指定编码试试.
作者:
_kernel
时间:
2006-04-21 19:44
js是unicode编码
作者:
muyan
时间:
2006-04-24 14:30
只有vbs的,有人改写成js的记得发给我一份
<script language=vbs>
function urldecoding(vstrin)
dim i,strreturn,strSpecial
strSpecial = "!""#$%&'()*+,/:;<=>?@[\]^`{ |}~%"
strreturn = ""
for i = 1 to len(vstrin)
thischr = mid(vstrin,i,1)
if thischr="%" then
intasc=eval("&h"+mid(vstrin,i+1,2))
if instr(strSpecial,chr(intasc))>0 then
strreturn= strreturn & chr(intasc)
i=i+2
else
intasc=eval("&h"+mid(vstrin,i+1,2)+mid(vstrin,i+4,2))
strreturn= strreturn & chr(intasc)
i=i+5
end if
else
if thischr="+" then
strreturn = strreturn & " "
else
strreturn = strreturn & thischr
end if
end if
next
urldecoding = strreturn
end function
</script>
复制代码
作者:
xuzuning
时间:
2006-04-24 17:01
somedom.innerHTML = decodeURIComponent("%E4%B8%AD%E6%96%87");
setcookie函数会对cookie变量的值做一次urlencode操作
因为你恰好使用了utf-8编码,所以操作起来就很方便了。如果是其他编码,比如gb2312就需要就需要自己书写编码函数了
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2