[php中文官网]php设置的中文cookiejs获取乱码解决办法

更新时间:2019-12-06    来源:php函数    手机版     字体:

【www.bbyears.com--php函数】

php两个函数 urlencode  urldecode
 
js两个函数 decodeURI  encodeURI  5.5以前的版本是已经废弃的 escape   unescape 
 
简单示例如下:
 
1、php 设置cookie ,js读取cookie
 
setcookie ("username", urlencode("中文测试"));
?>
 
<script type="text/javascript">
    alert(decodeURI(getCookie("username")))
    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>
 
2、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("username", "我是中国人", 0) 
</script>
 
echo urldecode($_COOKIE["username"]);
 
?>
 
 
 
3 js设置js读取 php设置php读取方法类似


 function SetCookie(name, value) {
        var exp = new Date();
        exp.setTime(exp.getTime() + 3 * 24 * 60 * 60 * 1000); //3天过期
        document.cookie = name + "=" + escape(value) + ";expires=" + exp.toGMTString();
        return true;
    };
    function getCookie(name) {
        var arr = document.cookie.match(new RegExp("(^| )" + name + "=([^;]*)(;|$)"));
        if (arr != null) return arr[2]; return null;
    };

 


 var currentServiceAliasName = getCookie("appName");
        var displayName = "";
        if (currentServiceAliasName != null && currentServiceAliasName != "" && currentServiceAliasName != "undefined")
            displayName = decodeURIComponent(currentServiceAliasName) + " . " + counterName;
        else
        displayName = counterName;

decodeURIComponent 用这个转换一下


总结:cookie解决中文乱码问题实质上是就url编码函数之间的转换,小编总结了一下其实小编觉得cookie最好不要使用中文了,中文在这些地方处理不够用了。

本文来源:http://www.bbyears.com/jiaocheng/82326.html