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" ...
随机推荐
- 关于ip层的作用网址链接
http://rabbit.xttc.edu.cn/rabbit/htm/artical/201091113054.shtml
- LOJ2823 「BalticOI 2014 Day 1」三个朋友
题意 给定一个字符串 S,先将字符串 S 复制一次(变成双倍快乐),得到字符串 T,然后在 T 中插入一个字符,得到字符串 U. 给出字符串 U,重新构造出字符串 S. 所有字符串只包含大写英文字母. ...
- 在django中使用logging
转:http://www.tuicool.com/articles/IV3meeE logging django使用python的内置模块logging来管理自己的日志,logging中四个重要的概念 ...
- 不得不注意tornado多进程部署的副作用
tornado多进程启动时,采用的是fork的方式. 一个现有进程可以调用fork函数创建一个新进程.由fork创建的新进程被称为子进程(child process).fork函数被调用一次但返回两次 ...
- Google全球服务器根域名的IP地址
Google全球服务器根域名的IP地址 目前GOOGLE正与ZF继续谈判,此谈判结果将直接影响该公司在中国的存在此前,由于曾出现Google服务器被墙,而致使众网友只能FQ搜索的窘境而目前尚不知道若G ...
- Mouse without Borders 跨屏鼠标
Mouse without Borders 跨屏鼠标 软件方式 当你有几台电脑同时工作时,不停的换鼠标和键盘是非常不方便的. 如果用的 Mouse without Borders 就不一样了,可以在多 ...
- 对实体 "useSSL" 的引用必须以 ';' 分隔符结尾。
<property name="connection.url">jdbc:mysql://127.0.0.1/cache?useUnicode=true&cha ...
- Host ASP.NET WebApi in Owin
什么是OWIN Owin其实是微软为了解耦.Net Web app对IIS的依赖而制定的一套规范,规范定义了Web Server与Web App之间的接口,这样Web App就可以Host在所有兼容O ...
- 第16篇 Shell脚本基础(一)
1.什么是shell?shell是一个命令解释器. 是介于操作系统内核与用户之间的一个绝缘层.对于一个linux系统使用人员来说,shell是你驾驭类linux系统最基本的工具.所有的系统命令和工具再 ...
- ror中间一些单复数的规则
基于rails generate生成的东西里面,有一些单复数的规则刚开始很不理解,觉得很复杂,容易弄错,特此记录 model 实际是对于数据库数据的对象化,只体现单个对象,比如模型user有name和 ...