如何用Cookie存储中文信息?

msybox 2004-05-04 05:46:04
存到Cookie时用URLEncoder.encode("中文", "UTF-8"),但取出来时按"UTF-8"进行转码却不行(ISO-8859-1也不行),什么原因呢?
...全文
245 9 点赞 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
msybox 2004-05-05
不好意思,纠正错误
读cookie的语句是
String temp = new String(cookies[i].getValue().getBytes("UTF-8"));

但读出来的是:%E4%B8%AD%E6%96%87,和写在cookie中的是一模一样的字串
  • 打赏
  • 举报
回复
msybox 2004-05-05
存进去的语句是
Cookie chineseCookie = new Cookie("chineseCookie", URLEncoder.encode("中文", "UTF-8"));
chineseCookie.setMaxAge(36000);
response.setCharacterEncoding("UTF-8");
response.addCookie(chineseCookie);


读Cookie的语句是
String temp = new String(cookies[i].getValue().getBytes("ISO-8859-1"));
  • 打赏
  • 举报
回复
msybox 2004-05-05
谢谢大胃,其实昨天我就在URLEncoder类中找decode方法,因为我觉得既然放进去的时候转了编码,而且好象是每个编码之间都用%作为分隔符,那就应该有解码的函数,可就是没想到这个函数会在另一个类中,都是对J2EE的类库不熟悉所至。
现将完整的代码列出,也好给碰到类似问题的朋友参考参考:
写Cookie:
Cookie chineseCookie = new Cookie("chineseCookie", URLEncoder.encode("中文", "UTF-8"));
chineseCookie.setMaxAge(36000);
response.setCharacterEncoding("UTF-8");
response.addCookie(chineseCookie);

读Cookie:
Cookie[] cookies = request.getCookies();
for (int i = 0; i < cookies.length; i++) {
if ("chineseCookie".equals(cookies[i].getName())) {
String temp = cookies[i].getValue();
temp = URLDecoder.decode(temp, "UTF-8");
System.out.println("chineseCookie : " + temp); //测试打印语句
}
}
  • 打赏
  • 举报
回复
sean_gao 2004-05-05
URLDecoder的decode用过了么?
  • 打赏
  • 举报
回复
fuzuyuan 2004-05-05
你的问题我试过了,好难搞定,期待解决中
  • 打赏
  • 举报
回复
msybox 2004-05-05
是不是都放假了
  • 打赏
  • 举报
回复
chilly0803 2004-05-04
关注
  • 打赏
  • 举报
回复
sean_gao 2004-05-04
取出来后怎么转的码?
  • 打赏
  • 举报
回复
msybox 2004-05-04
UP
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-05-04 05:46
社区公告
暂无公告