如何用Cookie存储中文信息?

msybox 2004-05-04 05:46:04
存到Cookie时用URLEncoder.encode("中文", "UTF-8"),但取出来时按"UTF-8"进行转码却不行(ISO-8859-1也不行),什么原因呢?
...全文
292 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
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

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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