今天遇到一个问题,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就可以了。