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设置中文失败的解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
safari cookie设置中文失败的解决方法
最近用H5进行手机端开发,由于是window操作系统,为了方便开发和调试,直接在chrome浏览器上进行测试,然后在android机上进行手机端测试,当功能基本完工后,原来在android上运行正常的应用,在IOS上运行时,出现很多奇怪的问题,根据排查,发现是由于cookie未取到值而导致相关信息无法获取. 一开始以为是cookie中文乱码的问题,后来跟踪发现,cookie的值压根就没赋值成功,网上查了资料,发现safari不允许非ASCII编码的值,换句话说:不允许中文存储. 为了解决这个问题
-
python logging设置level失败的解决方法
一.问题描述 在用python开发时经常用到logging这个包,根据官方示例,如果要指定日志级别可以写成如下的方式. import logging logging.basicConfig(level=logging.INFO) 但是在实际应用中,这种方式有时候会设置不成功,导致无法打印出info及以下级别的日志.一种最直接的解决方式是将这两行代码提到文件的最前面,保证在所有其他import语句之前. 示例如下. # encoding=utf8 import logging logging.ba
-
JavaScript使用focus()设置焦点失败的解决方法
昨天修改机顶盒上面的EPG页面,遇到一个小问题.用户购买游戏时需要弹出购买确认对话框,对话框的默认焦点规定必须停留在"取消"按键上.很简单的需求,使用JavaScript的focus()方法就可以实现了.简单的代码示例如下: document.getElementById("cancel").focus() 但是苦逼的是,机顶盒真是一个大坑.由于要兼容所有现存的机顶盒型号,需要对8款机顶盒进行适配.然后就出现问题了!一款中兴B600的机顶盒完全没法将焦点设置到取消按
-
安装oracle11g INS-30131执行安装程序验证所需的初始设置失败的解决方法
安装oracle11g [INS-30131] 执行安装程序验证所需的初始设置失败. 解决方法 第一步: 控制面板>所有控制面板项>管理工具>服务>SERVER 启动 TCP/IP 启动 第二步: 1.点击 开始->运行 ,输入regedit ,然后回车键进入注册编辑器 2.找到并点击HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\LanmanServer\Parameters 3.如果AutoShareServer和
-
php出现web系统多域名登录失败的解决方法
本文实例讲述了php出现web系统多域名登录失败的解决方法,分享给大家供大家参考.具体分析如下: 下面只是简单的逻辑结构,对于正式的系统需要做具体的处理. 这里需要注意的是:加解密一定需要做安全验证.但是这个方法也不够完美,两个站点必须有相同一级域名:另外这种完全基于cookie的方式,安全性不够高 function login() { $info = callloginserver(); //访问登录服务器 if(!empty($info)) //登录成功了 } //用户没有登录,则在本系统中
-
php中mail函数发送邮件失败的解决方法
本文实例讲述了php中mail函数发送邮件失败的解决方法.分享给大家供大家参考.具体分析如下: php中mail函数是一个自带的发邮件的函数,但是如果你真的要使用mail函数来发邮件那必须是要给你系统安装sendmail组件才可以,下面我就碰到mail发送不了邮件的问题,下面一起来看看解决办法吧. 之前的那台服务器转移过来后,发现网站用mail()发送邮件发不了,但是发现sendmail明明已经安装,如果没有安装sendmail可以执行,代码如下: 复制代码 代码如下: yum install
-
java表单提交中文乱码的解决方法
本文实例为大家分享了java表单提交中文乱码的解决方法,供大家参考,具体内容如下 主页index.xml <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>servlet演示</title> </head> <body> <h2&
-
Python使用matplotlib绘图无法显示中文问题的解决方法
本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplotlib.pyplot as plt # 定义文本框和箭头格式 decisionNode = dict(boxstyle = "sawtooth", fc = "0.8") leafNode = dict(boxstyle = "round4", f
-
Linux程序运行时加载动态库失败的解决方法
Linux下不能加载动态库问题 当出现下边异常情况 ./test: error while loading shared libraries: libmfs_open.so: cannot open shared object file: No such file or directory 若动态库的路径在(/usr/cluster/.share/lib) 解决办法: 方法一.在/etc/ld.so.conf文件中添加路径,vi /etc/ld.so.conf 添加下边内容 include ld
-
Python中pyecharts安装及安装失败的解决方法
pyecharts 是一个用于生成 Echarts 图表的类库.Echarts 是百度开源的一个数据可视化 JS 库.这篇文章重点给大家介绍pyecharts安装失败的处理方法,具体详情如下: pyecharts库的安装 1.正常安装 首先在打开终端输入以下命令:pip install pyecharts 在终端输入pip list查看是否安装成功测试程序: from pyecharts.charts import Bar bar = Bar() bar.add_xaxis(["衬衫"
随机推荐
- jQuery表单验证之密码确认
- 用vbscript得到注册表中是否存在某个值
- IOS初始化控制器的实现方法总结
- 浅析java程序中hibernate的应用总结
- 一行代码实现IOS 3DES加密解密
- 用Html5与Asp.net MVC上传多个文件的实现代码
- 优化PHP代码的53条建议
- 解决Python传递中文参数的问题
- Python编程之变量赋值操作实例分析
- Android 使用volley过程中遇到的问题解决办法
- table 行转列的sql详解
- Textarea根据内容自适应高度
- AJAX入门之深入理解JavaScript中的函数
- 显示行号的文本输入框
- MongoDB学习笔记(三) 在MVC模式下通过Jqgrid表格操作MongoDB数据
- 解决Android横竖屏切换数据丢失问题的方法
- C#二叉搜索树插入算法实例分析
- C# 设计模式系列教程-代理模式
- 基于php中echo用逗号和用点号的区别详解
- JS闭包经典实例详解
