Maison > développement back-end > tutoriel php > 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

零到壹度
Libérer: 2023-03-23 15:50:02
original
1997 Les gens l'ont consulté

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"));
?>
Copier après la connexion
<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>
Copier après la connexion

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>
Copier après la connexion


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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal