首頁  >  文章  >  後端開發  >  如何解決php cookies亂碼問題

如何解決php cookies亂碼問題

藏色散人
藏色散人原創
2021-03-17 09:44:362333瀏覽

php cookies亂碼的解決方法:先在寫入Cookie時,將其用Url編碼;然後重新寫入Cookie;最後在讀取時進行Url解碼即可。

如何解決php cookies亂碼問題

本文操作環境:windows7系統、PHP7.1版,DELL G3電腦

php與js互傳cookie時中文亂碼的問題

js儲存cookie,php讀取的時候就變成亂碼了。

問題分析:

這是因為文字編碼而造成的,漢字是兩個編碼,所以才會搞出這麼個亂碼出來!

解決想法:

1:寫入Cookie時,先將其用Url編碼,然後再寫入

2:當我們讀取時再Url解碼即可

 

php兩個函數

urlencode() 

urldecode()

 

##js兩個函數

decodeURI() 

encodeURI() 

php 設定cookie ,js讀取cookie

<?php
setcookie ("TestCookie", urlencode("这就是网页21"));
?>

 

<script type="text/javascript">
    alert(decodeURI(getCookie("TestCookie")))
    function getCookie(sName) {
    var aCookie = document.cookie.split(&#39;; &#39;);
    for (var i=0; i < aCookie.length; i++) {
    var aCrumb = aCookie[i].split(&#39;=&#39;);
    if (sName == aCrumb[0])
    return decodeURI(aCrumb[1]);
 }
 return &#39;&#39;;
}
</script>

 js設定cookie php讀取cookie

<script type="text/javascript">function setCookie(name, value, time){
    var nameString = name + &#39;=&#39; + encodeURI(value);
    var expiryString = "";
    if(time !== 0) {
        var expdate = new Date();
        if(time == null || isNaN(time)) time = 60*60*1000;
        expdate.setTime(expdate.getTime() +  time);
     expiryString = &#39; ;expires = &#39;+ expdate.toGMTString();
 }
 var path = " ;path =/";
 document.cookie = nameString + expiryString + path;
}setCookie("TestJsCookie", "我是中国人", 0)  </script>
<?php
echo urldecode($_COOKIE["TestJsCookie"]);
?>

推薦學習:《PHP影片教學

以上是如何解決php cookies亂碼問題的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn