Cookie存中文乱码的问题
有个奇怪的问题:登录页面中使用Cookie存值,Cookie中要存中文汉字。代码在本地调试,一切OK,汉字也能顺利存到Cookie和从Cookie中读出,但是放到服务器上不管用了,好好的汉字成了乱码,原本以为是服务器环境和本地的不一样,后来一想应该不对,因为代码放服务器上之后再访问登录页面会和服务器交互,交互必然要有网络传输,而Cookie是存在本地的,就是在服务器向本地写Cookie的时候,网络的编码格式影响了汉字的正常存储导致汉字乱码。顺着这个思路改代码,然后测试,通过!
但是新问题来了,在给汉字编码的时候,常用的有这两种:HttpUtility.UrlEncode 和 Server.UrlEncode,虽然编码/解码成对使用没问题,但是毕竟是两种方法,总该是有区别的,网上查了一下,区别如下:
第一:引用:
1、HttpUtility.UrlEncode,HttpUtility.UrlDecode是静态方法,而Server.UrlEncode,Server.UrlDecode是实例方法。
2、Server是HttpServerUtility类的实例,是System.Web.UI.Page的属性。
3、用HttpUtility.UrlEncode编码后的字符串和用Server.UrlEncode进行编码后的字符串对象不一样
Server.UrlEncode 可以根据你页面定义好的编码方式进行编码。
而 HttpUtility.UrlDecode则默认以utf8来编码。 不然你需要自己指定编码方式:
Encoding gb2312= Encoding.GetEncoding("gb2312");
string v5= HttpUtility.UrlEncode("中文汉字", gb2312);
而 Server.UrlDecode则默认调用web.config中<globalization />节点中指定来编码
<globalization requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN" />
string v3= Server.UrlEncode("中文汉字");
这两种方式,在不使用web.config默认的编码方式时,HttpUtility.UrlEncode比较好用,但是不方便;如果是使用web.config统一编码,则Server.UrlDecode比较好。另外就是,如果是下载文件而定义编码方式,最好使用HttpUtility.UrlEncode
Cookie存中文乱码的问题的更多相关文章
- (转)Cookie存中文乱码的问题
有个奇怪的问题:登录页面中使用Cookie存值,Cookie中要存中文汉字.代码在本地调试,一切OK,汉字也能顺利存到Cookie和从Cookie中读出,但是放到服务器上不管用了,好好的汉字成了乱码, ...
- 【转】asp.net Cookie值中文乱码问题解决方法
来源:脚本之家.百度空间.网易博客 http://www.jb51.net/article/34055.htm http://hi.baidu.com/honfei http://tianminqia ...
- JS读写cookie以及中文乱码解决
本文地址:http://www.cnblogs.com/PiaoMiaoGongZi/p/4092489.html 转载请注明. Js获取所有的cookie信息: var cookiename = d ...
- 解析Qt4.7.3编译MySql数据库驱动,存中文乱码、过滤转义字符问题
问题:使用QSqlDataBase类建立连接MySql数据库驱动加载失败 QSqlDatabase: QMYSQL driver not loaded QSqlDatabase: available ...
- cookie的中文乱码问题【URL编码解码】
先搞明白为什么会乱码,为什么要转码: 在tomcat 8 之前,cookie中不能直接存储中文数据.需要将中文数据转码,一般采用URL编码(%E3).在tomcat 8 之后,cookie支持中文数据 ...
- cookie存中文
cookie存取: 存: Cookie cookie = new Cookie("title",URLEncoder.encode("标题","utf ...
- 解决:jquery ajax非首次请求Server端获取cookie值中文乱码问题
HttpCookie cookie = new HttpCookie("RealName", HttpUtility.UrlEncode("你想要设置的值")) ...
- js中,怎么解决cookie里面中文乱码问题
呵呵,我查了百度和谷歌,都没找到解决方案,但是,最终直接结合两个函数就可以了,哈哈哈,开心ing function getCookie(name) { var prefix = name + &quo ...
- 如何处理Cookie存储和读取中文乱码问题
存储Cookie for(String str:books){ str=new String(str.getBytes("ISO-8859-1"),"utf-8" ...
随机推荐
- opencv 学习笔记集锦
整理了我所了解的有关OpenCV的学习笔记.原理分析.使用例程等相关的博文.排序不分先后,随机整理的.如果有好的资源,也欢迎介绍和分享. 1:OpenCV学习笔记 作者:CSDN数量:55篇博文网址: ...
- LA4728 Squares
题意 PDF 分析 就是求凸包点集的直径. 当然选择旋转卡壳. 然后是实现上的技巧: 当Area(p[u], p[u+1], p[v+1]) <= Area(p[u], p[u+1], p[v] ...
- Tornado输出和响应头
1.输出 再来看看输出`write`,实际上,`write`并没有直接把数据返回给前端,而是先写到缓存区,函数结束之后才会返回到前端,我们验证如下 class FlushHandler(tornado ...
- Spring aop 记录操作日志 Aspect 自定义注解
时间过的真快,转眼就一年了,没想到随手写的笔记会被这么多人浏览,不想误人子弟,于是整理了一个优化版,在这里感谢智斌哥提供的建议和帮助,话不多说,进入正题 所需jar包 :spring4.3相关联以及a ...
- bzoj 2259 [Oibh]新型计算机 ——最短路(建图)
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2259 不是 n^2 条边!连那条边权为0的边之后,只要每个位置向它的前一个位置和后一个位置连 ...
- html网页自动跳转页面代码
方案一,用<meta>里直接写刷新语句: <html><head><meta http-equiv="Content-Language" ...
- tomcat启动报错:Bean name 'XXX' is already used in this <beans> element
如题,tomcat容器启动时加载spring的bean,结果报错如下: 六月 28, 2017 9:02:25 上午 org.apache.tomcat.util.digester.SetProper ...
- RK3288 Android5.1系统编译
输入指令时一定要注意当前路径 1.编译之前需要安装JDK7,并配置JAVA环境变量. xxx@build:~/RK3288$ export JAVA_HOME=/usr/lib/jvm/java-7- ...
- junit基础学习
学习地址一:http://blog.csdn.net/andycpp/article/details/1327147/ 学习地址二:http://blog.csdn.net/zen99t/articl ...
- win7系统清除USBSTOR记录
方法一 1.Win+R,出现运行窗口,如图所示: 2.在输入框中输入“regedit”,如图所示: 3.进入后,点击编辑-查找,查找输入框中输入“USBSTOR”(为了加快查找速度,可以只选择“项”) ...