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
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 setcookie ("TestCookie", urlencode("这就是网页21")); ?>
<script type="text/javascript"> alert(decodeURI(getCookie("TestCookie"))) function getCookie(sName) { var aCookie = document.cookie.split('; '); for (var i=0; i < aCookie.length; i++) { var aCrumb = aCookie[i].split('='); if (sName == aCrumb[0]) return decodeURI(aCrumb[1]); } return ''; } </script>
<script type="text/javascript">function setCookie(name, value, time){ var nameString = name + '=' + 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 = ' ;expires = '+ 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!