因为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);
}
后台显示:??..???????
请各位不吝赐教,怎么解决这个乱码,用过滤器也没解决
8 个解决方案
#1
你怎么提交的?
js提交的话,encode 一下。
js提交的话,encode 一下。
#2
或者 页面中设置
<% request.setCharacterEncoding("gb2312"); %>
取的时候
System.out.println(new String(name.getBytes("ISO-8859-1"),"GB2312"));
<% request.setCharacterEncoding("gb2312"); %>
取的时候
System.out.println(new String(name.getBytes("ISO-8859-1"),"GB2312"));
#3
都不行,还是乱码,不过乱码不是问号,还夹杂几个汉字 :?ㄦ鼎??
本打算和数据库取出的username对比,这下来个乱码就卡在这了
#4
看看表单是怎么提交的
1.是不是用js代码中location或href方式提交的?
2.表单的method属性是否存在,或者是不是定义为get了?
如果是上述情况,取数据时不要用new String(name.getBytes("ISO-8859-1"),"GB2312")的形式转换。否则用request.setCharacterEncoding("gb2312");即可
1.是不是用js代码中location或href方式提交的?
2.表单的method属性是否存在,或者是不是定义为get了?
如果是上述情况,取数据时不要用new String(name.getBytes("ISO-8859-1"),"GB2312")的形式转换。否则用request.setCharacterEncoding("gb2312");即可
#5
不是js提交,还是不能解决
#6
tom猫做服务器?页面用的utf-8编码?form使用post提交?
如果是请看下server.xml配置文件中<Connector>(port属性为你的WEB访问端口,比如8080的)标签中有添加URIEncoding="UTF-8"。
如果是请看下server.xml配置文件中<Connector>(port属性为你的WEB访问端口,比如8080的)标签中有添加URIEncoding="UTF-8"。
#7
最近没有上,不知道你解决了没有,你发一下代码看看
#8
可以试下response.setCharacterEconding("utf8");这里设置为和界面编码一样。
#1
你怎么提交的?
js提交的话,encode 一下。
js提交的话,encode 一下。
#2
或者 页面中设置
<% request.setCharacterEncoding("gb2312"); %>
取的时候
System.out.println(new String(name.getBytes("ISO-8859-1"),"GB2312"));
<% request.setCharacterEncoding("gb2312"); %>
取的时候
System.out.println(new String(name.getBytes("ISO-8859-1"),"GB2312"));
#3
都不行,还是乱码,不过乱码不是问号,还夹杂几个汉字 :?ㄦ鼎??
本打算和数据库取出的username对比,这下来个乱码就卡在这了
#4
看看表单是怎么提交的
1.是不是用js代码中location或href方式提交的?
2.表单的method属性是否存在,或者是不是定义为get了?
如果是上述情况,取数据时不要用new String(name.getBytes("ISO-8859-1"),"GB2312")的形式转换。否则用request.setCharacterEncoding("gb2312");即可
1.是不是用js代码中location或href方式提交的?
2.表单的method属性是否存在,或者是不是定义为get了?
如果是上述情况,取数据时不要用new String(name.getBytes("ISO-8859-1"),"GB2312")的形式转换。否则用request.setCharacterEncoding("gb2312");即可
#5
不是js提交,还是不能解决
#6
tom猫做服务器?页面用的utf-8编码?form使用post提交?
如果是请看下server.xml配置文件中<Connector>(port属性为你的WEB访问端口,比如8080的)标签中有添加URIEncoding="UTF-8"。
如果是请看下server.xml配置文件中<Connector>(port属性为你的WEB访问端口,比如8080的)标签中有添加URIEncoding="UTF-8"。
#7
最近没有上,不知道你解决了没有,你发一下代码看看
#8
可以试下response.setCharacterEconding("utf8");这里设置为和界面编码一样。