新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
JS讀取PHP中設置的中文cookie時出現(xiàn)亂碼怎么辦
JS讀取PHP中設置的中文cookie時出現(xiàn)亂碼的解決方法:1、在PHP中先用escape函數(shù)編碼,到客戶端時利用js中的unescape解碼;2、使用【setrawcookie()】函數(shù)來代替cookie值。
沙灣網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁設計、網(wǎng)站建設、微信開發(fā)、APP開發(fā)、響應式網(wǎng)站開發(fā)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)建站公司2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設就選創(chuàng)新互聯(lián)建站。
JS讀取PHP中設置的中文cookie時出現(xiàn)亂碼的解決方法:
在PHP中先用escape函數(shù)編碼,到客戶端時利用js中的unescape解碼。
escape函數(shù)如下:
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); }
例子:test.php
$v) { if(ord($v[0]) < 128) $ar[$k] = rawurlencode($v); else $ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v)); } return join("",$ar); } $name = escape("深圳人"); setcookie("name", $name); ?>function get_cookie(name) { var result = null; var myCookie = document.cookie + ";"; var searchName = name + "="; var startOfCookie = myCookie.indexOf(searchName); var endOfCookie; if (startOfCookie != -1) { startOfCookie += searchName.length; endOfCookie = myCookie.indexOf(";",startOfCookie); result = unescape(myCookie.substring(startOfCookie, endOfCookie)); } return result; } document.write("js:" + unescape(getCookie("name")));
另外還有一個方法:
在PHP5中,可以使用setrawcookie()
函數(shù)來代替,它是在設置cookie值的時候沒有編碼的,所以在設置cookie的時候也不用先用escape函數(shù)編碼,這時JS也能直接讀取cookie的值
分享題目:JS讀取PHP中設置的中文cookie時出現(xiàn)亂碼怎么辦
文章源于:http://www.ef60e0e.cn/article/choegd.html