ホームページ  >  記事  >  バックエンド開発  >  phpとjsが相互にCookieを転送すると中国語が文字化けする原因と解決策

phpとjsが相互にCookieを転送すると中国語が文字化けする原因と解決策

零到壹度
零到壹度オリジナル
2018-04-11 16:59:531971ブラウズ

この記事の内容は、PHPとJSが相互にCookieを転送するときに中国語が文字化けする原因と解決策を共有することです。必要な友人は参考にしてください

。分析:

これは、文字のエンコーディングが原因で発生します。そのため、混乱が生じます。

ソリューションのアイデア:

1: Cookieを書き込むときは、まずURLでエンコードしてから書き込みます

2: 読み取るときに、URLをデコードできます

php 2つの関数

urlencode()

urldecode()

js 2つの関数

decodeURI()

encodeURI()

5.5より前のバージョンはescape unescape

php set cookie, js reads 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 set cookie php reads 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とjsが相互にCookieを転送すると中国語が文字化けする原因と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。