您好,欢迎访问一九零五行业门户网

php和js互传cookie导致出现中文乱码的原因和解决措施

本篇文章给大家分享的内容是php和js互传cookie导致出现中文乱码的原因和解决措施,有着一定的参考价值,有需要的朋友可以参考一下
问题分析:
这是因为文字编码而造成的,汉字是两个编码,所以才会搞出这么个乱码出来!
解决思路:
1:写入cookie时,先将其用url编码,然后再写入
2:当我们读取时再url解码即可
php两个函数
urlencode() 
urldecode()
js两个函数
decodeuri() 
encodeuri() 
5.5以前的版本是 escape   unescape
 php 设置cookie ,js读取cookie
<?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>
js设置cookie php读取cookie<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>
<?php echo urldecode($_cookie["testjscookie"]); ?>
以上就是php和js互传cookie导致出现中文乱码的原因和解决措施的详细内容。
其它类似信息

推荐信息