让人想死的中文编码问题
我在jsp页面传值到action里面(用的是struts1)。jsp页面设置的是charset=UTF-8,表单提交方式是post。到了action里面String name=request.getParameter"userName");
String pwd=request.getParameter("userPwd");两个都是乱码。然后我在接收数据前加一句request.setCharacterEncoding("UTF-8");在接收显示还是乱码。把我弄毛了。易做图脆写个FORM类把表单值用FORM接收,UserForm uf=(UserForm)form;System.out.println(uf.getUserName()+"\t"+uf.getUserPwd());可是这样还是出编码问题。我最后实在无语了。无语到只能用笨方法把每个接收的值再这样一下。new String(name.getBytes("ISO-8859-1"),"UTF-8");编码问题,这才宣告解决。各位大神,不知道解决中文编码问题,有没有比这更简单的没有。这实在是太麻烦了 --------------------编程问答-------------------- 写一个通用的过滤器处理中文乱码问题,把它放到struts1易做图前面,方便以后使用! --------------------编程问答-------------------- jsp页面设置的是charset=UTF-8,表单提交方式是post。
--这种方式不会乱码。
new String(name.getBytes("ISO-8859-1"),"UTF-8");编码问题,这才宣告解决。
--那非常可能是你压根就没用form传值,直接url拼串或者location="**?a=张三&..." --------------------编程问答-------------------- 我使用的工具是eclipse
1楼。。。我用了filter没啥用。不知道咋滴。
2楼。。。我的jsp是text文本,没有直接url拼接。
不过还是很感谢你们,这么快就回复了我的。 --------------------编程问答-------------------- 1.可以改成post提交
2.或者修改服务器的uri编码。找到tomcat下的server.xml,修改:
<Connector connectionTimeout="20000" maxThreads="150" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
为
<Connector URIEncoding="UTF-8" connectionTimeout="20000" maxThreads="150" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
即添加URIEncoding="UTF-8"
补充:Java , Web 开发