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

下面小编就为大家带来一篇safari cookie设置中文失败的解决方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

最近用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设置中文失败的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持得得之家。

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

这篇文章主要为大家详细介绍了iOS读取txt文件出现中文乱码的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
iOS在HTTP网络编程环境方面提供了NSURLSession、NSHTTPCookieStorage和NSHTTPCookie类来处理session和coockie的相关内容,接下来我们将来详解iOS App开发中session和coockie的用户数据存储处理:
这篇文章主要介绍了iOS中使用URL Scheme进行App跳转的教程,比如在应用内提示安装另一个应用时就以url打开safari然后打开app store那样,需要的朋友可以参考下
这篇文章主要给大家介绍了关于如何给Flutter界面切换实现点特效的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Flutter具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
在本篇文章里小编给各位整理的是关于adb push中文路径文件名丢失后缀的解决方法以及知识点整理,有需要的朋友们参考下。
这篇文章主要介绍了iOS 9 更新之Safari广告拦截器(Content Blocker)开发教程的相关资料,需要的朋友可以参考下