safari cookie设置中文失败的解决方法
程序员文章站
2023-12-12 12:38:28
最近用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设置中文失败的解决方法
-
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
-
关于网站开发中div标签中设置宽度后其中文本溢出的原因和解决方法
-
安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
-
ios10以下safari设置style无效的解决方法
-
在PHP中设置、使用、删除Cookie的解决方法_php实例
-
在PHP中设置、使用、删除Cookie的解决方法_php实例
-
关于网站开发中div标签中设置宽度后其中文本溢出的原因和解决方法
-
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法_PHP
-
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法_PHP教程