当前位置: 代码迷 >> ASP.NET >> 高分放送-求asp.net cookie 中文乱码有关问题
  详细解决方案

高分放送-求asp.net cookie 中文乱码有关问题

热度:10882   发布时间:2013-02-25 00:00:00.0
高分放送--急求asp.net cookie 中文乱码问题
我在登录页面用cookie 保存了用户名,但是一遇到汉字,登录了就成了乱码,我在网上找了相关的资料,试了结果还是没解决乱码这个问题,请大虾指点几招
我在配置文件中加了如下 :(还是乱码)
<globalization  
  requestEncoding="gb2312"  
  responseEncoding="gb2312"  
  />

------解决方案--------------------------------------------------------
<globalization
requestEncoding="gb2312"
responseEncoding="gb2312"
/>

好像和coolies没有什么关系吧
------解决方案--------------------------------------------------------
把编码都改成utf-8吧
------解决方案--------------------------------------------------------
如果需要将中文写入cookie
则在写cookie时,需要 HttpUtility.UrlEncode("xxxxx")

读出cookie时,HttpUtility.UrlDecode()
------解决方案--------------------------------------------------------
页面 gb2312 ?
写 UrlEncode ?
读 UrlDecode ?

------解决方案--------------------------------------------------------
当然会乱码了 。 你必选加上这个
NameValueCollection nv = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("GB2312"));

------解决方案--------------------------------------------------------
命名空间 加这个 using System.Collections.Specialized; 再不行 给我发信息。
------解决方案--------------------------------------------------------
不是不是的 哪里调用 加在哪里的
------解决方案--------------------------------------------------------
HttpUtility.UrlDecode()
------解决方案--------------------------------------------------------
例如
public void databind()
{
try
{
NameValueCollection nv = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("GB2312"));
string proname = nv["ID"];
string sqlstr = "select * from btproduct where productname like'%" + proname + "%'";
}
------解决方案--------------------------------------------------------
name = nv["MyCookie"]; 

试试 , 我还不信了。搞不定这个小问题。
------解决方案--------------------------------------------------------
呵呵 我帮你写吧。 
 NameValueCollection nv = HttpUtility.ParseQueryString(Request.Url.Query, Encoding.GetEncoding("GB2312")); 
--------------------------------------------------
Request .Cookies [].Value .ToString ();
----------------------------------------------------------
 NameValueCollection nv = HttpUtility.ParseQueryString(Request .Cookies [].Value .ToString (), Encoding.GetEncoding("GB2312")); 
------------------------------------------------------------

------解决方案--------------------------------------------------------
你慢慢搞, 不要着急。写的时候仔细查一下和你的代码哪里不同,
------解决方案--------------------------------------------------------
是的 那个是 页面传值 , 是空的。我已经把它换成 只能把 url 的页面值 换成 cookie
------解决方案--------------------------------------------------------
用的时候也要加密。这才能保证中文不乱码, 这些东西对中文支持的不好。
------解决方案--------------------------------------------------------
帮顶
------解决方案--------------------------------------------------------
编码问题,哈哈
------解决方案--------------------------------------------------------
这个和lz有一样的疑惑,不过ls的某个说出接法了
  相关解决方案