don't have a Chinese system, so I cannot test for you, but modify your web.config:<configuration>
<system.web>
<globalization requestEncoding="GB2312" responseEncoding="GB2312" uiCulture="zh-CN" culture="zh-CN" fileEncoding="GB2312" />
</system.web>
</configuration>
<system.web>
<globalization requestEncoding="GB2312" responseEncoding="GB2312" uiCulture="zh-CN" culture="zh-CN" fileEncoding="GB2312" />
</system.web>
</configuration>
s = System.Text.Encoding.UTF8.GetString(System.Text.Encoding.GetEncoding("GB2312").GetBytes(Request.Cookies["SomeCookie"].Value))>>>我在ASP.NET中写入中文COOKIES值,在普通asp中读取出的是乱码
Request.Cookies["SomeCookie"].Value = System.Text.Encoding.GetEncoding("GB2312").GetString(System.Text.Encoding.UTF8.GetBytes("中文")));
如果使用ASP。NET则将中文直接保存成中文也就是还是“中国”!好象ASP有自动转换功能,可以把:“%D6%D0%B9%FA”转换成“中国”(我想起了ASP中的经过Server.URLEncode()的中文,到另外一个页面中可以直接显示而无需要转换)好象问题出在ASP的自动转换上面!我也不知道我分析的是否正确。还请您在帮帮我。非常感谢。
保持你的ASP的这种做法,在ASP.Net中保存Cookie时:System.Text.Encoding theEncoding = System.Text.Encoding.GetEncoding("gb2312");
string cookieValue = HttpUtility.UrlEncode( "中国",theEncoding );Request.Cookies["SomeCookie"].Value = cookieValue;获取Cookie时:
System.Text.Encoding theEncoding = System.Text.Encoding.GetEncoding("gb2312");
string cookieValue = Request.Cookies["SomeCookie"].Value;string decodeValue = HttpUtility.UrlDecode( cookieValue,theEncoding );