C# .net中cookie值为中文时的乱码解决方法
一.cookie的名称或子cookie的名称不能为中文,否则无法获得cookie
这个好办,名称不用中文即可
二.cookie的值为中文时候,取cookie的值会出现乱码
解决办法:存取cookie时候先解码和编码
存cookie,进行编码:
cookie.Value = HttpUtility.UrlEncode("上海");
取cookie时候,进行解码:
cookieValue = HttpUtility.UrlDecode(cookie.Value);
另外注意:
取子cookie时候,应该先解码,再根据%号分解,才能取到子cookie的值.
写Cookie里,一定要加上UrlEncode,用Request读Cookie时,一定要加上UrlDecode
示例如下:
protected void Page_Load(object sender, EventArgs e)
{
HttpCookie GoodList = null;
//如果GoodList不为空,则GOODID+1,GoodsName加"乐无烟"
if (Request.Cookies["GoodList"] != null)
{
GoodList = Request.Cookies["GoodList"];
GoodList.Values["GoodsID"] = Server.UrlEncode(Server.UrlDecode(Request.Cookies["GoodList"]["GoodsID"]) + ",1");
GoodList.Values["GoodsName"] = Server.UrlEncode(Server.UrlDecode(Request.Cookies["GoodList"]["GoodsName"]) + ",乐无烟");
GoodList.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(GoodList);
}
else
{
//初次写入Cookie
GoodList = new HttpCookie("GoodList");
GoodList.Values["GoodsID"] = Server.UrlEncode("2");
GoodList.Values["GoodsName"] = Server.UrlEncode("无烟锅");
GoodList.Expires = DateTime.Now.AddDays(1);
Response.Cookies.Add(GoodList);
}
Response.Write(Server.UrlDecode(Request.Cookies["GoodList"]["GoodsID"]) + "<br/>");
Response.Write(Server.UrlDecode(Request.Cookies["GoodList"]["GoodsName"]) + "<hr/>");
}
中文cookie的问题,
在Windows 2000正常,
在Windows 2003 sp1下会偶尔出现乱码(遇到双字节特殊字符时候,例子:「`蹆绌 ),
在windows 2003 SP2下基本乱码
解决办法:
采用
Server.UrlEncode();
Server.UrlDecode();
Cookie["MyCookie"] = Server.UrlEncode("中文")
Response.Write(Server.UrlDecode(Request.Cookies("MyCookie").Value()))
编码和解码。
另外编码和解码要一致
System.Web.HttpUtility.UrlDecode 和 System.Web.HttpUtility.UrlEncode
System.Web.HttpContext.Current.Server.UrlDecode 和 System.Web.HttpContext.Current.Server.UrlEncode
C# .net中cookie值为中文时的乱码解决方法的更多相关文章
- Eclipse导入的工程后referenced libraries中的jar包中文注释显示乱码解决方法
Preferences-General-Workspace-Text file encoding 设置为uft-8 最后重启一下eclipse.
- asp.net url址址中中文汉字参数传递乱码解决方法
中文乱码是网站开发中会常碰到的问题,今天我们来讲一下关于url址址中中文汉字参数传递乱码解决方法,有需要的朋友可以参考下.在cs文件里传参的时候用UrlEncode: Response.Redirec ...
- JabRef中添加中文文献出现乱码 解决方法
JabRef中添加中文文献出现乱码 解决方法 问题描述 JaBRef是一款开源的文献管理软件,主要用来管理bibtex格式的参考文献,可以与LATEX配合使用,方便论文参考文献的使用.文献管理 ...
- python listdir() 中文路径 中文文件夹 乱码 解决方法
python listdir() 中文路径 中文文件夹 乱码 解决方法 listdir(path)返回的结果的编码似乎和我们提供的 path 参数的编码有关: path = 'd:/test' try ...
- Struts2中action接收中文参数为乱码解决方法
老实说,中文乱码问题是每个程序员会经常遇到的问题,而且也是一个很头疼的问题.网上很多关于解决中文乱码的帖子,看几个之后你会发现大都是一样的.但是我们照着做,却还是无法解决乱码问题.我也是看了好多帖子, ...
- 读取properties配置文件,value值为中文时出现乱码
已确保idea工具默认设置都是UTF-8格式: 然后在配置类上,指定编码: @PropertySource(value = "classpath:short_message.prop ...
- thinkphp 中 dump 函数调试数组时显示不全解决方法
在php.ini里的 xdebug 节点中,加入如下 xdebug.var_display_max_children=128 #子级节点最多显示的的字符数xdebug.var_display_max_ ...
- VS Code 中文注释显示乱码 解决方法
将设置中的"files.autoGuessEncoding"项的值改为true即可. 1.文件 2.首选项 3.设置 4.搜索 "files.autoGuessEncod ...
- 吴裕雄--天生自然HTML学习笔记:启动TOMCAT服务器时出现乱码解决方法
随机推荐
- 万能面试问题大全,教你怎么回答,怎么拿下offer
一.你对薪资的要求? 回答提示: 说实话,大家找工作,都希望找个高薪的,那我们如何和公司去谈薪酬呢?如果你对薪酬的要求太低,那显然贬低自己的能力:如果你对薪酬的要求太高,那又会显得你分量过重,公司受用 ...
- MySQL 5.6 主从复制如何处理——触发器,函数,存储过程,调度事件
截图来自MySQL5.6的pdf版文档. 说明: 1)基于语句的复制时,trigger会在slave上执行,所以slave上也需要有trigger的定义,不然会导致主从数据不一致的: 2)基于行的 ...
- sql server ,sql语句,练习笔记
一.删除冗余记录 DELETE [学生表] WHERE id NOT IN (SELECT MIN(id) FROM [学生表] GROUP BY [学号],[姓名],[课程编号],[课程],[分数] ...
- mysql workbench EER model 乱码
如图所示: 解决办法: Edit-->perference...-->Apperance 如下图
- c# FTP操作类
using System; using System.Collections.Generic; using System.Text; using System.IO; using System.Net ...
- Makefile变量
自定义变量 = 是最基本的赋值,会把整个makefile展开之后再决定是多少 x=foo y=$(x)bar #y是asdbar,不是foobar x=asd := 是覆盖之前的值,和=不同,和赋值的 ...
- mkfifo
管道是Linux的十种文件类型之一,使用管道通信本质上还是以文件作为通信的媒介 有名管道+无名管道=管道 有名管道(FIFO文件):就是 有文件名的管道, 可以用于任意两个进程间的通信 无名管道(pi ...
- 企业邮箱在Android(安卓)系统手机上POP3/IMAP协议的设置方法
此处以三星(系统版本4.4.2)为例,介绍下使用安卓系统自带的客户端如何设置pop/imap协议方式方法 以下我们将使用test@zhuyuming.so 为测试案例,请您操作时更换成您自己的邮箱账号 ...
- windows下制作linux U盘启动盘或者安装优盘(转)
windows下制作linux U盘启动盘或者安装优盘(转) Linux发行版排行榜:http://iso.linuxquestions.org/ [方案一]:UltraISO(不推荐,在Window ...
- 怎么使PUTTY一直连接
如何才能保证PUTTY一直连接,即使我们好长时间不去敲命令,也让它一直连接着? PuTTY的设置方法是:在Connection里面有个Seconds between keepaliaves.这里就是每 ...