用php对cookie数据做unicode编码 <? $text = ‘高压锅‘; $text = escape($text); setcookie(‘name‘,$text); 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("GB2312","UCS-2",$v)); } return join("",$ar); } ?> <script> function getCookieVal(offset) { var endstr = document.cookie.indexOf(";",offset); if(endstr == -1) endstr = document.cookie.length; return unescape(unescape(document.cookie.substring(offset,endstr))); } function GetCookie(name) { var arg = name + "="; var alen = arg.length; var clen = document.cookie.length; var i = 0; while(i < clen) { var j = i + alen; if(document.cookie.substring(i,j) == arg) return getCookieVal(j); i = document.cookie.indexOf(" ",i) + 1; if(i == 0) break; } return null; } document.write(GetCookie("name")); </script> |
|