iso8859-1 转 utf-8的问题。

啦啦队 2012-07-20 04:09:31
我用的服务器是tomcat7,可能7对中文的支持不是很好。

我想要把用户名(中文)存到cookie中,以后打开时再读取。

response.setContentType("text/html");
PrintWriter out = response.getWriter();
request.setCharacterEncoding("UTF-8");
String uname = request.getParameter("username");
String upwd = request.getParameter("password");
String remember = request.getParameter("remember");
Userinfo u = new Userinfo();
u.setUsermail(uname);
u.setPassword(upwd);
UserinfoBiz ub = new UserinfoBizImpl();
if (ub.login(u)) {
if (remember != null) {
uname=new String(uname.getBytes("iso8859-1"));
Cookie ckuname = new Cookie("uname", uname);
Cookie ckupwd = new Cookie("upwd", upwd);

ckuname.setMaxAge(60 * 60 * 24 * 365);
ckupwd.setMaxAge(60 * 60 * 24 * 365);

response.addCookie(ckuname);
response.addCookie(ckupwd);
}


request.getSession().setAttribute("username", uname);
request.getSession().setAttribute("password", upwd);
response.sendRedirect("myindex");

} else {

response.sendRedirect("login.html");
}
out.close();


因为中文没法写入,所以我在写入之前把编码转成了iso8859-1.

现在我应该在读取的servlet中转成utf-8。。

为什么我转不回来了。。。代码如下。。

if (cookie[i].getName().equals("uname")) {
unameString = cookie[i].getValue();
unameString=new String(unameString.getBytes("iso8859-1"),"utf-8");
}


悲剧啊。求解决。。。
...全文
618 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
啦啦队 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

用encodeURI进行传递参数。
[/Quote]

我用的是java的servlet 不是 js。
啦啦队 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

放在数组里
[/Quote]
if (cookie[i].getName().equals("uname")) {
unameString = cookie[i].getValue();
unameString=new String(unameString.getBytes("iso8859-1"),"utf-8");
}


这样不就是放在数组里么?
酒比花香 2012-07-20
  • 打赏
  • 举报
回复
编码有点乱啊,最好从始至终用一种编码格式,不然最后把自己都搞晕了。。
yktd26 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

因为 tomcat7 对中文支持不好。

[/Quote]

这是哪说的?能说说为什么无法写入中文么
yktd26 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

因为 tomcat7 对中文支持不好。

[/Quote]

这是哪说的?能说说为什么无法写入中文么
chenzhd2005 2012-07-20
  • 打赏
  • 举报
回复
用encodeURI进行传递参数。
崔叫兽 2012-07-20
  • 打赏
  • 举报
回复
放在数组里
啦啦队 2012-07-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

iso-8859-1 是西欧字符集,256个字符,和中文没有半毛钱关系。
utf-8才是好的编码,为什么要把utf-8转成其他的
[/Quote]

因为 tomcat7 对中文支持不好。

没有办法将中文写入cookie.

我就想换个方式去写。。

然后用的时候再转回来。。
yktd26 2012-07-20
  • 打赏
  • 举报
回复
iso-8859-1 是西欧字符集,256个字符,和中文没有半毛钱关系。
utf-8才是好的编码,为什么要把utf-8转成其他的

81,091

社区成员

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

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