求教cookie乱码问题

Only_You_forver 2011-01-27 04:27:41
如题,我网站发布后有一个切换城市的功能,并将用户选择的城市保存在cookie中(www.zhms777.com),这里的城市显示的是乱码:
这是我写入cookie的代码:
HttpCookie htc = new HttpCookie("Logined");
htc.Domain = "zhms777.com";
htc.Path = @"/";
htc.Expires = DateTime.Now.AddDays(10);
if (AreaLinkageManager.IsChildSite(cName))
htc.Value = HttpContext.Current.Server.UrlEncode(cName);
else
{
htc.Value = HttpContext.Current.Server.UrlEncode("");
cName = "";
}
这个是切换城市的js切换城市的代码:
function SetCookieValue(area) {
var cookieId = "Logined";
delCookie(cookieId);
document.cookie = cookieId + "=" + encodeURI(area) + ";path=/";

window.location.reload();
document.getElementById("Loading").style.display = "none";
}
function delCookie(name) {
var date = new Date();
date.setTime(date.getTime() - 10);
document.cookie = name + "=a; expires=" + date.toGMTString()-10;
}
页面编码全部设置的utf-8,我改成gb2312也不行,HttpUtility.UrlEncode这个设置编码也没用,请各位指教下。。。
...全文
263 23 打赏 收藏 转发到动态 举报
写回复
用AI写文章
23 条回复
切换为时间正序
请发表友善的回复…
发表回复
zcxverygood123456 2012-09-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 的回复:]
MyCookie.Value = Server.urlEncode("商业信息");
utf8编码
存Server.UrlEncode(Response.Cookies.Add(MyCookie));
读Server.UrlDecode(Request.Cookies["MyCookie"].Value)
[/Quote]
================
这种是对的,支持。
bingo_ 2011-02-12
  • 打赏
  • 举报
回复

可以用Base64编码
// 写
Response.Cookies["test"].Value = Convert.ToBase64String(Encoding.UTF8.GetBytes("湖北"));
// 读
string Cookie = Encoding.UTF8.GetString(Convert.FromBase64String(Request.Cookies["test"].Value))
ycproc 2011-02-12
  • 打赏
  • 举报
回复
统一编码格式 UTF-8
子夜__ 2011-02-12
  • 打赏
  • 举报
回复
hmz912 2011-02-12
  • 打赏
  • 举报
回复
编码问题 <globalization requestEncoding="utf-8" responseEncoding="utf-8" />
copelis 2011-02-11
  • 打赏
  • 举报
回复
不要用server,用httputility.encode和httputility.decode
哈利波特2013 2011-02-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 only_you_forver 的回复:]
晕了,
比如我编码后生成的值是:%25e6%25b7%25b1%25e5%259c%25b3%25e5%25b8%2582
本地Server.UrlDecode(Server.UrlDecode(value))可以正确解码出值,但发布到服务器上就不行了,解析出来乱码
[/Quote]
那就有可能你保存的位置不对,服务器和客户端都可以有cookie
biaofanwo 2011-02-10
  • 打赏
  • 举报
回复
用url 编码。。。然后获取再解码。
Only_You_forver 2011-02-10
  • 打赏
  • 举报
回复
晕了,
比如我编码后生成的值是:%25e6%25b7%25b1%25e5%259c%25b3%25e5%25b8%2582
本地Server.UrlDecode(Server.UrlDecode(value))可以正确解码出值,但发布到服务器上就不行了,解析出来乱码
哈利波特2013 2011-02-10
  • 打赏
  • 举报
回复
问题很复杂和你的编程环境有关,查看是否有繁简冲突。
Only_You_forver 2011-02-10
  • 打赏
  • 举报
回复
没有人吗?
我只有在写cookie值的时候读取出现乱码,并且在firbug里拦截到的cookie也是编码后的正常的值,但后台Server.UrlDecode()解码就乱码了,求指教啊。。
Only_You_forver 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyq11 的回复:]

MyCookie.Value = Server.urlEncode("商业信息");
utf8编码
存Server.UrlEncode(Response.Cookies.Add(MyCookie));
读Server.UrlDecode(Request.Cookies["MyCookie"].Value)
[/Quote]这种倒是没试过,明天去试下,QQQ。。
Only_You_forver 2011-01-28
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 wuyq11 的回复:]

MyCookie.Value = Server.urlEncode("商业信息");
utf8编码
存Server.UrlEncode(Response.Cookies.Add(MyCookie));
读Server.UrlDecode(Request.Cookies["MyCookie"].Value)
[/Quote]Cookies.Add返回类型是void,而UrlEncode(string),晕啊。。。
孟子E章 2011-01-27
  • 打赏
  • 举报
回复
escape(area)
wuyq11 2011-01-27
  • 打赏
  • 举报
回复
MyCookie.Value = Server.urlEncode("商业信息");
utf8编码
存Server.UrlEncode(Response.Cookies.Add(MyCookie));
读Server.UrlDecode(Request.Cookies["MyCookie"].Value)

Only_You_forver 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 pbw68277118 的回复:]

这个我也遇到了
web.comfig
加上:<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
页面调用JS的地方
加上 charset = "gb2312"
页头写上
<% Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2……
[/Quote]还是不行啊
Times_ORZ 2011-01-27
  • 打赏
  • 举报
回复
这个我也遇到了
web.comfig
加上:<globalization requestEncoding="utf-8" responseEncoding="utf-8" />
页面调用JS的地方
加上 charset = "gb2312"
页头写上
<% Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312"); %>

我是这样解决的 你试一试吧~
hya0114145 2011-01-27
  • 打赏
  • 举报
回复
我看你页面都加

<meta content="text/html;charset=GB2312" http-equiv="Content-Type">

其实不用写在页面中..只要在配置文件中写就行
Only_You_forver 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zx75991 的回复:]

web.config加上一句
<globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN"/>
[/Quote]不给力啊,写了也还是不行
Froyo2010 2011-01-27
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 zx75991 的回复:]

web.config加上一句
<globalization fileEncoding="gb2312" requestEncoding="gb2312" responseEncoding="gb2312" culture="zh-CN"/>
[/Quote]

OK
加载更多回复(1)

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧