form提交的表单中 中文字符 到action中取出是乱码如何解决?

新靖界 2012-05-23 01:03:35

因为jsp表单中提交的是中文字符,所以出现乱码

action中部分代码 :

public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
LoginForm loginForm = (LoginForm) form;// TODO Auto-generated method stub

//取出form中的姓名和密码
String username=loginForm.getUsername();
String password=loginForm.getPassword();
//打印从form中取出的姓名
System.out.println(username);

}

后台显示:??..???????


请各位不吝赐教,怎么解决这个乱码,用过滤器也没解决
...全文
1561 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cjh_tostring 2012-06-30
  • 打赏
  • 举报
回复
可以试下response.setCharacterEconding("utf8");这里设置为和界面编码一样。
townsin 2012-06-29
  • 打赏
  • 举报
回复
最近没有上,不知道你解决了没有,你发一下代码看看
hy158753228 2012-05-23
  • 打赏
  • 举报
回复
tom猫做服务器?页面用的utf-8编码?form使用post提交?
如果是请看下server.xml配置文件中<Connector>(port属性为你的WEB访问端口,比如8080的)标签中有添加URIEncoding="UTF-8"。
新靖界 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]
看看表单是怎么提交的
1.是不是用js代码中location或href方式提交的?
2.表单的method属性是否存在,或者是不是定义为get了?
如果是上述情况,取数据时不要用new String(name.getBytes("ISO-8859-1"),"GB2312")的形式转换。否则用request.setCharacterEncoding("gb2312");即可
[/Quote]

不是js提交,还是不能解决
townsin 2012-05-23
  • 打赏
  • 举报
回复
看看表单是怎么提交的
1.是不是用js代码中location或href方式提交的?
2.表单的method属性是否存在,或者是不是定义为get了?
如果是上述情况,取数据时不要用new String(name.getBytes("ISO-8859-1"),"GB2312")的形式转换。否则用request.setCharacterEncoding("gb2312");即可
新靖界 2012-05-23
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
或者 页面中设置
<% request.setCharacterEncoding("gb2312"); %>

取的时候
System.out.println(new String(name.getBytes("ISO-8859-1"),"GB2312"));
[/Quote]

都不行,还是乱码,不过乱码不是问号,还夹杂几个汉字 :?ㄦ鼎??

本打算和数据库取出的username对比,这下来个乱码就卡在这了
yuppy 2012-05-23
  • 打赏
  • 举报
回复
或者 页面中设置
<% request.setCharacterEncoding("gb2312"); %>

取的时候
System.out.println(new String(name.getBytes("ISO-8859-1"),"GB2312"));
yuppy 2012-05-23
  • 打赏
  • 举报
回复
你怎么提交的?

js提交的话,encode 一下。

62,614

社区成员

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

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