今天遇到一個問題,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就可以了。