欢迎来到代码驿站!

iOS代码

当前位置:首页 > 移动开发 > iOS代码

safari cookie设置中文失败的解决方法

时间:2021-10-19 08:56:35|栏目:iOS代码|点击:

最近用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()是配对的。

上一篇:举例讲解Objective-C中@property属性的用法

栏    目:iOS代码

下一篇:详解iOS tableViewCell自适应高度 第三发类库

本文标题:safari cookie设置中文失败的解决方法

本文地址:http://www.codeinn.net/misctech/180460.html

推荐教程

广告投放 | 联系我们 | 版权申明

重要申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:914707363 | 邮箱:codeinn#126.com(#换成@)

Copyright © 2020 代码驿站 版权所有