手机
当前位置:查字典教程网 >编程开发 >IOS开发 >safari cookie设置中文失败的解决方法
safari cookie设置中文失败的解决方法
摘要:最近用H5进行手机端开发,由于是window操作系统,为了方便开发和调试,直接在chrome浏览器上进行测试,然后在android机上进行手...

最近用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设置中文失败的解决方法】相关文章:

Objective-C中字符串NSString的常用操作方法总结

IOS设备上给body绑定click事件不生效的原因及解决办法

查看iOS Crash logs的方法

Unity3d发布IOS9应用时出现中文乱码的解决方法

iOS程序开发中设置UITableView的全屏分隔线的方法(不画线)

ios实现文件对比的方法

iOS文字渐变色效果的实现方法

总结iOS App开发中控制屏幕旋转的几种方式

IOS设置按钮为圆角的示例代码

关于iOS导航栏返回按钮问题的解决方法

精品推荐
分类导航