今天遇到一个问题,php设置的cookie存中文的值,js读取就是乱码。 最后在网上找到答案。
public function escape($str)
{preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v)
{
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("gbk","UCS-2",$v));
}
return join("",$ar);
}
php 存cookie时 先进行escape函数处理,php本身没有escape这个函数,
js端读取的时候 用unescape就可以了。