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

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. 算法导论----VLSI芯片测试; n个手机中过半是好的,找出哪些是好手机

    对于分治(Divide and Conquer)的题目,最重要是 1.如何将原问题分解为若干个子问题, 2.子问题中是所有的都需要求解,还是选择一部分子问题即可. 还有一点其实非常关键,但是往往会被忽 ...

  2. My_Python的常用函数.

    范围生成函数 class range(object) | range(stop) -> range object | range(start, stop[, step]) -> range ...

  3. Mac OS X中配置Apache

    我使用的Mac OS X版本是10.8.2,Mac自带了Apache环境. 启动Apache 设置虚拟主机 启动Apache 打开“终端(terminal)”,输入 sudo apachectl -v ...

  4. ios oc ui 路径和颜色设置--崩溃解决方案

    - (id)init{ self = [super init]; if (self) { _lineColor = CGColorCreateCopy([UIColor whiteColor].CGC ...

  5. "由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案

    先使用如下命令登录到服务器: mstsc /v:{服务器IP} /admin 然后再使用下列方法之一即可. 方法一: 1.单击“开始→运行”,输入“gpedit.msc”打开组策略编辑器窗口,依次定位 ...

  6. 5、SQL基础整理(字符串函数)

    字符串函数 ASCII 返回字符串首字母的ascii编码 select ASCII('name') select ASCII(name) from xuesheng select *from xues ...

  7. Android 学习第1课,JDK工具包的安装

    1. jdk 的下载 目前为止,jdk的最新版是jdk8,http://www.oracle.com/technetwork/java/javase/downloads/index.html 到这里下 ...

  8. UI学习笔记---第四天

    事件处理 事件概述 UIEvent:事件,是由硬件捕捉的一个表示用户操作设备的对象 分三类:触摸事件\  晃动事件\ 远程控制事件 触摸事件:会包含1个到多个触摸点 实现触摸 UIView支持触摸事件 ...

  9. 用java将excel表格中的内容修改后写入到另一个excel中

    package nn; import java.io.File; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; import jxl. ...

  10. WEBRTC源码片段分析(1)音频缓冲拷贝

    源码位置webrtc/webrtc/modules/audio_device/ios/audio_device_ios.cc函数OSStatus AudioDeviceIPhone::RecordPr ...