来源:脚本之家、百度空间、网易博客

http://www.jb51.net/article/34055.htm

http://hi.baidu.com/honfei

http://tianminqiang.blog.163.com/blog/#m=0

==============================================================================

cookie中怎么保存中文

在用cookie保存用户名的时候,发现cookie值不能存中文,报如下错:

Control character in cookie value, consider BASE64 encoding your value

错误发生在:response.addCookie(cookie);

在以前的编程中也碰到过这样的问题,主要是cookie值里面存在非法参数,如存在”\r\n”、”\n”之类的字符时就报报这样的错,但我就个用户名啊,不存在像这些字符啊,不管,我把cookie值设为一个默认的中文用户名,运行看是否出问题,果不其然,出现同样的错误,结果知道,cookie中不能保存中文。

最后想想把中文转换为UTF-8字符串进行保存应该没问题,即用 URLEncoder.encode(“中文用户名”,”UTF-8″)); 这样把中文用户名转换为UTF-8字符串,运行时通过。在最后接收这个值的时候,用URLDecoder.decode(cookies.getValue(),”UTF-8″);来解码得到我要的中文用户名。
URLEncode及URLDecode在包java.net里面。

。。。。。。。。。。。。。。
其他语言都有URL字符标准化转码函数,如: 
ASP:server.URLEncode() 
PHP:urlencode() 
JAVA:java.net.URLEncoder.encode()

以上来自网易博客

====================================================================================

asp.net Cookie值中文乱码问题解决方法

cookie里面不能写中文,是由于cookie先天的编码方式造成的。所以需要有一种中间编码来过渡。 URLEncode是最好的选择。

我们以asp.net为例,代码如下:

代码如下:

设置Cookie时
HttpCookie cookie = new HttpCookie("name", System.Web.HttpContext.Current.Server.UrlEncode("脚本之家"));
Response.Cookies.Add(cookie);
读取Cookie时:
if (Request.Cookies["name"] != null)
{
  Response.Write(System.Web.HttpContext.Current.Server.UrlDecode(Request.Cookies["name"].Value));
}

注意:编码和解码要一致

System.Web.HttpContext.Current.Server.UrlDecode 和 System.Web.HttpContext.Current.Server.UrlEncode
System.Web.HttpUtility.UrlDecode 和 System.Web.HttpUtility.UrlEncode

以上部分来自脚本之家文章《asp.net Cookie值中文乱码问题解决方法》

==================================================================================================

在asp.net2.0中使用Cookie保存中文出现乱码的解决方法

最近工作中遇到在asp.net2.0中使用Cookie保存中文会出现乱码,解决方法是需要对中文内容进行编码和解码,例如:

设置cookie时:

HttpCookie cookie = Request.Cookies["UserName"];
if (Session["UserName"] != null)
{
string userName = Server.UrlEncode(Session["UserName"].ToString());
if (cookie != null)
{
cookie.Value = userName;
//cookie.Expires = DateTime.Now.AddDays(1);
cookie.Domain = BasePage.DomainName;
Response.Cookies.Set(cookie);
}
else
{
cookie = new HttpCookie("UserName");
cookie.Value = userName;
//cookie.Expires = DateTime.Now.AddDays(1);
cookie.Domain = BasePage.DomainName;
Response.Cookies.Add(cookie);
}
}

获取cookie时:

private string _loginUserName;
public string LoginUserName
{
get
{
if (Session["UserName"] != null && Session["UserName"].ToString() != "")
{
_loginUserName = Session["UserName"].ToString();
}
else if (Request.Cookies["UserName"] != null && Request.Cookies["UserName"].Value != "")
{
_loginUserName = Server.UrlDecode(Request.Cookies["UserName"].Value);
}
else
{
_loginUserName = null;
}
return _loginUserName;
}
}

还有一个条件,即配置文件中需要设置中文格式,如:

<!-- 全球化          此节设置应用程序的全球化设置。    -->
<globalization requestEncoding="GB2312" responseEncoding="GB2312"/>

---------------------------------------------------------------------------------------------------------------------------

中文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

以上来自百度空间

【转】asp.net Cookie值中文乱码问题解决方法的更多相关文章

  1. WingIDE中文乱码问题解决方法

    WingIDE中文乱码问题解决方法 安装完WingIDE后,首次运行python脚本时,若脚本中含有UTF-8中文,在Debug I/O输出框中,全部变成了乱码. 这时其实我们设置下WingIDE的编 ...

  2. soapUI参数中文乱码问题解决方法 (groovy脚本中文乱码)

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  3. LoadRunner中文乱码问题解决方法

    LoadRunner中文乱码问题解决方法 前段时间在录制,增强,整合LoadRunner脚本,期间两次遇到了中文乱码问题.在此记录一下中文乱码问题的解决办法. 一.录制回放中文乱码 我录制登陆的脚本, ...

  4. python3 库pandas写入csv格式文件出现中文乱码问题解决方法

    python3 库pandas写入csv格式文件出现中文乱码问题解决方法 解决方案: 问题是使用pandas的DataFrame的to_csv方法实现csv文件输出,但是遇到中文乱码问题,已验证的正确 ...

  5. soapUI参数中文乱码问题解决方法&soap UI工具进行web接口测试

    soapUI参数中文乱码问题解决方法 可能方案1: 字体不支持中文,将字体修改即可: file-preferences-editor settings-select font 修改字体,改成能显示中文 ...

  6. tomcat启动控制台中文乱码问题解决方法

    tomcat启动控制台中文乱码问题解决方法,修改tomcat安装路径/conf/logging.properties文件 java.util.logging.ConsoleHandler.encodi ...

  7. j2ee、mvn、eclipse、Tomcat等中文乱码问题解决方法

    一.更改jdk默认编码为UTF-8,保证启动的JVM不会出现中文乱码问题 1.在编译的时候,如果我们没有用 -encoding 参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们 ...

  8. Git GUI中文乱码问题解决方法

    使用Git GUI的查看代码的时候,会出现中文乱码: 在乱码的区域点击鼠标右键,选择Encoding,然后选择Unicode(UTF-8),乱码问题解决:

  9. asp.net 导出excel 中文乱码解决方法 (转)

    用我转载的上一篇文章 Asp.net中把DataTable或DataGrid导出为Excel 导出的文档,中文有乱码现象,其实要解决中文乱码很简单,设置一下字符集.如下: // 设置编码和附件格式 c ...

随机推荐

  1. ajax 提交成功页面跳转问题

    jsx/ajax提交成功后采用以下方式跳转:1.本页面跳转:"window.location.href"."location.href" 2.上一层页面跳转:& ...

  2. win下隐藏任务栏

    C# 隐藏任务栏开始按钮 关闭shell 分类: .NET C# 2011-07-14 15:26 789人阅读 评论(1) 收藏 举报 shell任务c#stringnulluser 一.隐藏任务栏 ...

  3. 10年山东省赛-E-最短路

    题目连接:http://acm.sdut.edu.cn/sdutoj/showproblem.php?pid=2155&cid=1430 题意:输入一个n个节点,m条边的图,然后k条记录,纪录 ...

  4. App Store审核指南:WatchKit、HealthKit、ApplePay以及HomeKit部分

    将此前App Store审核指南中的WatchKit.HealthKit.ApplePay以及HomeKit部分进行了整理和摘取. 10. 用户界面 10.1 应用程序必须遵守苹果的<Apple ...

  5. 联合与枚举 、 高级指针 、 C语言标准库(一)

    1 输入一个整数,求春夏秋冬 1.1 问题 在实际应用中,有的变量只有几种可能取值.如人的性别只有两种可能取值,星期只有七种可能取值.在 C 语言中对这样取值比较特殊的变量可以定义为枚举类型.所谓枚举 ...

  6. dbd到mongo的序列化问题及稳定性

    最近工作压力有点大,情绪偶然会失控,要好好反省一下自己. 上周本来打算写CSP相关的东西,但是目前做得还不够多,积累的经验不足,就放弃了.中间找到很好的参考资料,一并放在这里.一篇是比较短的论文,可以 ...

  7. eclipse 发布APK

    在程序代码告一段落后,需要发布程序,以后还有后续版本更新,用户下载后自动提示更新. 但是平时测试都是debug的方式安装了,但是一个程序不可能是一个人在做,所以生成的密钥都是不一样的, 这就造成用户需 ...

  8. 快速掌握grep命令及正则表达式

    Linux系统自带了支持拓展正则表达式的 GNU 版本 grep 工具,所有的Linux发行版中均默认安装grep ,grep 命令被用来检索一台服务器或工作站上任何位置的文本信息,如何在 Linux ...

  9. ME23N PO 打印预览 打印问题

    ME23N进入PO订单,点message查看订单打印的配置 点message查看订单打印的配置 然后spro查看 选择相应的outputtype,然后双击processing routines 可以看 ...

  10. AudioUnit,AudioQueue之争

    最近在修改调试一个webrtc的问题,困扰了好久,故先记录下来,有成果了就发出来.问题1 使用webrtc源码做iOS上的VOIP通讯时(iOS侧接口用的AudioUnit),如果通话中被CS域来电打 ...