php、asp.net关于后台设置的cookie前台JS获取时出现中文乱码问题解决

.NET:

在后台设置的中文cookie,可以先用HttpUtility.UrlEncode进行编码,在前台用JS获取cookie时用decodeURIComponent进行解码

 

PHP:

1. 详见 http://www.cnblogs.com/Byrd/archive/2011/06/23/2088358.html

这种设置在IE上用没有问题,但在Firefox下中文出现乱码,借鉴.net下的解决方法对字符串进行urlencode编码

2.

首先PHP在用urlencode编码时要转换成utf-8再编码,然后设置cookie

 

 <?php

    $str = "国家主席";
    $test = iconv("GB2312","UTF-8",$str);

    setrawcookie("username",escape($_GET["username"]));
?>

 

 JS函数

 

 

function URLdecode(str) {
    var ret = "";
    for(var i=0;i<str.length;i++) {
        var chr = str.charAt(i);
        if(chr == "+") {
            ret += " ";
        }else if(chr=="%") {
            var asc = str.substring(i+1,i+3);
            if(parseInt("0x"+asc)>0x7f) {
                ret += decodeURI("%"+ str.substring(i+1,i+9));
                i += 8;
            }else {
                ret += String.fromCharCode(parseInt("0x"+asc));
                i += 2;
            }
        }else {
            ret += chr;
        }
    }
    return ret;
}
js获取cookie:username = URLdecode(readCookie("username"));
 

 

 

posted @   Byrd  阅读(1167)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
· 零经验选手,Compose 一天开发一款小游戏!
点击右上角即可分享
微信分享提示