cookies传值发生乱码的问题

zhouing00 2010-10-13 09:35:51
protected void LBmorelblmodule1_Click(object sender, EventArgs e)//按钮有如下代码
{
HttpCookie MyCookie = new HttpCookie("lblmodule1");
DateTime now = DateTime.Now;
MyCookie.Value = "商业信息";
MyCookie.Expires = now.AddHours(25);
Response.Cookies.Add(MyCookie);
this.La.Text = MyCookie.Value;//测试显示正常
Response.Redirect("MoreSearch.aspx");
}
提交按钮后
protected void Page_Load(object sender, EventArgs e)
{
HttpCookie MyCookie = Request.Cookies["lblmodule1"];
DateTime now = DateTime.Now;
MyCookie.Expires = now.AddHours(1);
if (MyCookie.Value.ToString() == "" || MyCookie.Value.ToString() == null)
{
this.Label2.Text = "没有读到内容";
this.Page.Title = "没有读到内容";
}
else
{
this.Label2.Text = MyCookie.Value;//显示乱码了,是怎么回事? this.Page.Title = this.Label2.Text;
}
}
问题请看注释红色字体部分
...全文
216 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
porschev 2010-10-13
  • 打赏
  • 举报
回复

HttpCookie MyCookie = new HttpCookie("lblmodule1");
DateTime now = DateTime.Now;
MyCookie.Value = HttpUtility.UrlEncode("商业信息"); //加
MyCookie.Expires = now.AddHours(25);
Response.Cookies.Add(MyCookie);


lblName.Text =HttpUtility.UrlDecode(MyCookie.Value.ToString()); //解
zhouing00 2010-10-13
  • 打赏
  • 举报
回复
结合大家的建议,问题解决了,谢谢13楼和1楼,谢谢大家
fcpslove 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 szhda4le 的回复:]
不支持中文 存的时候要编码 取的时候要解码
存Server.UrlEncode(Response.Cookies.Add(MyCookie));
读Server.UrlDecode(Request.Cookies["MyCookie"].Value)
[/Quote]
Jacy_NOOB 2010-10-13
  • 打赏
  • 举报
回复
String str1 = URLDecoder.decode(s, enc);
String str = URLEncoder.encode(s, enc);
这两个api,上面是编码,下面是解码,s是字符串,enc是编码方式。
import java.net.URLDecoder;
import java.net.URLEncoder;
这两个是包
szhda4le 2010-10-13
  • 打赏
  • 举报
回复
不支持中文 存的时候要编码 取的时候要解码
存Server.UrlEncode(Response.Cookies.Add(MyCookie));
读Server.UrlDecode(Request.Cookies["MyCookie"].Value)
zhouing00 2010-10-13
  • 打赏
  • 举报
回复
VS2005
Jacy_NOOB 2010-10-13
  • 打赏
  • 举报
回复
你是在什么环境下编的啊!如果是Eclipse的话,可能页面的默认编码方式不是utf-8,你进去改下看看
zhouing00 2010-10-13
  • 打赏
  • 举报
回复
急死了,自己顶
zhouing00 2010-10-13
  • 打赏
  • 举报
回复
楼上的讲那几个办法我都试过了,都还是不能解决乱码的问题。乱码要么是:鍟嗕笟淇℃伅,要么是:%e5%95%86%e4%b8%9a%e4%bf%a1%e6%81%af等等什么的
哎,是什么原因呢?
wubudang 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 zhouing00 的回复:]
引用 1 楼 wuyq11 的回复:
MyCookie.Value = Server.urlEncode("商业信息");
utf8编码
不包含“urlEncode”的定义是要添加什么引用么?
[/Quote]
HttpUtility.UrlDecode("商业信息")
Jacy_NOOB 2010-10-13
  • 打赏
  • 举报
回复
HttpServlet servlet;
或HttpServletRequest request;
request.setCharaterEncoding("utf-8");
zhouing00 2010-10-13
  • 打赏
  • 举报
回复
我试过了,如果把商业信息几个字改成英文没有问题,可能的确是需要转换,问题是怎么转换呢?
角斗士 2010-10-13
  • 打赏
  • 举报
回复
应该是你实例化的cookie没接收到值吧,调试一下看看。
zhouing00 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 qzyuanmu 的回复:]
引用 1 楼 wuyq11 的回复:
MyCookie.Value = Server.urlEncode("商业信息");
utf8编码

up 中文的话,要转换下的
[/Quote]
说清楚点,怎么转换?
qzyuanmu 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
MyCookie.Value = Server.urlEncode("商业信息");
utf8编码
[/Quote]



up 中文的话,要转换下的
zhouing00 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 wuyq11 的回复:]
MyCookie.Value = Server.urlEncode("商业信息");
utf8编码
[/Quote]不包含“urlEncode”的定义是要添加什么引用么?
wuyq11 2010-10-13
  • 打赏
  • 举报
回复
MyCookie.Value = Server.urlEncode("商业信息");
utf8编码
fwacky 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 szhda4le 的回复:]
不支持中文 存的时候要编码 取的时候要解码
存Server.UrlEncode(Response.Cookies.Add(MyCookie));
读Server.UrlDecode(Request.Cookies["MyCookie"].Value)
[/Quote]
正解

62,271

社区成员

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

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

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

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