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

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

零到壹度
リリース: 2023-03-23 15:50:02
オリジナル
1975 人が閲覧しました

この記事の内容は、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 サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート