Maison  >  Article  >  développement back-end  >  Raisons et solutions pour les caractères chinois tronqués lorsque php et js se transfèrent des cookies

Raisons et solutions pour les caractères chinois tronqués lorsque php et js se transfèrent des cookies

零到壹度
零到壹度original
2018-04-11 16:59:531971parcourir

Le contenu de cet article est de partager avec vous les raisons et les solutions aux caractères chinois tronqués causés par le transfert mutuel de cookies entre php et js. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. 🎜>

Analyse du problème :

Ceci est dû au codage du texte. Les caractères chinois ont donc deux encodages. arrive Un code tellement tronqué est sorti !

Solution :

1 : Lors de l'écriture d'un cookie, utilisez-le d'abord Encodage d'url , puis écrire

2 : Quand on le lit, décoder l'Url

php deux fonctions

urlencode()

urldecode()

js deux fonctions

decodeURI()

encodeURI()

La version avant 5.5 est escape unescape

php définit le cookie, js lit le 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 définir le cookie php lire le 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>


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn