safari cookie设置中文失败的解决方法
2016-08-04 10:19
513 查看
最近用H5进行手机端开发,由于是window操作系统,为了方便开发和调试,直接在chrome浏览器上进行测试,然后在android机上进行手机端测试,当功能基本完工后,原来在android上运行正常的应用,在IOS上运行时,出现很多奇怪的问题,根据排查,发现是由于cookie未取到值而导致相关信息无法获取。
一开始以为是cookie中文乱码的问题,后来跟踪发现,cookie的值压根就没赋值成功,网上查了资料,发现safari不允许非ASCII编码的值,换句话说:不允许中文存储。
为了解决这个问题,在设置cookie值的时候必须先编码,然后取值的时候再解码。
后端设置cookie用的asp.net,前端获取用的Javascript,他们的编码和解码能一致么?当前只能试一试了:
试了几种方法,发现用HttpUtility.UrlEncode()进行编码成功:
cookie = new HttpCookie("rdname"); cookie.Value = HttpUtility.UrlEncode(user.RegisterDeptName); cookie.Expires = System.DateTime.Now.AddDays(30); context.Response.Cookies.Set(cookie);
客户端Javascript解码为:
var deptName = cookie('rdname'); deptName= decodeURIComponent(deptName); $("#pickerlb").val(deptName);
也就是说:Javascript中的decodeURIComponent()和C#的HttpUtility.UrlEncode()是配对的。
以上这篇safari cookie设置中文失败的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章推荐
- safari cookie设置中文失败
- JS读取PHP中设置的中文cookie时出现乱码的解决方法
- JavaScript读取中文cookie时的乱码问题的解决方法
- 关于S60手机设置呼叫失败解决方法
- VirtualBox设置共享文件夹失败的解决方法
- MyEclipse编码设置,中文乱码解决方法,UTF-8,GBK
- MyEclipse编码设置,中文乱码解决方法,UTF-8,GBK(转)
- 解决Cookie中文乱码的方法
- MyEclipse编码设置,中文乱码解决方法,UTF-8,GBK
- Ubuntu Linux Apache安装设置(中文网页乱码的解决方法)
- C# .net中cookie值为中文时的乱码解决方法
- 关于std::fstream以及std::ifstream打开中文路径名失败的问题和解决方法
- 在JSP中使用Cookie,以及操作中文的乱码解决方法
- PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
- C# .net中cookie值为中文时的乱码解决方法
- 关于S60手机设置呼叫失败解决方法
- C# .net中cookie值为中文时的乱码解决方法
- C# .net中cookie值为中文时的乱码解决方法
- Jsp中存取Cookie的“中文”问题解决方法
- net2.0中使用Cookie保存中文出现乱码的解决方法