Heim  >  Artikel  >  Backend-Entwicklung  >  Gründe und Lösungen für verstümmelte chinesische Zeichen, wenn PHP und JS Cookies untereinander übertragen

Gründe und Lösungen für verstümmelte chinesische Zeichen, wenn PHP und JS Cookies untereinander übertragen

零到壹度
零到壹度Original
2018-04-11 16:59:531957Durchsuche

Der Inhalt dieses Artikels besteht darin, Ihnen die Gründe und Lösungen für verstümmelte chinesische Zeichen mitzuteilen, die durch die gegenseitige Übertragung von Cookies zwischen PHP und JS verursacht werden. Freunde in Not können sich darauf beziehen 🎜>

Problemanalyse:

Dies wird dadurch verursacht, dass chinesische Schriftzeichen zwei Kodierungen haben passiert Es ist so ein verstümmelter Code herausgekommen!

Lösung:

1: Wenn Sie ein Cookie schreiben, verwenden Sie zuerst die URL-Codierung , und schreiben Sie dann

2: Wenn wir es lesen, entschlüsseln Sie die URL

php zwei Funktionen

urlencode()

urldecode()

js zwei Funktionen

decodeURI()

encodeURI()

Die Version vor 5.5 ist Escape Unescape

PHP setzt Cookie, JS liest 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 read 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>


Das obige ist der detaillierte Inhalt vonGründe und Lösungen für verstümmelte chinesische Zeichen, wenn PHP und JS Cookies untereinander übertragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn