请问一个关于提交表单到servlet的中文乱码的问题,谢谢

来源:百度知道 编辑:UC知道 时间:2024/09/26 10:46:24
我提交过来 的name属性,用这种方式解决不行,还是乱码
request.setCharacterEncoding("UTF-8");
非要
String name = request.getParameter("name");
name = new String(name.getBytes("iso-8859-1"),"utf-8");
才可以为什么 啊,这是郁闷,这太麻烦了,试了网上很多人建议的filter解决办法,还是不行,以前好像可以的,真是见鬼了

你是用post方式还是get方式,如果是get方式的话server.xml里也要改下,把connector标签改成这样,加上URIEcoding="GBK"这句话:<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" URIEncoding="GBK" />
如果是post方式就不用这样了

你可以检查一下,你的页面中的字符是什么形式的:是不是GBK的字符??????????????

尽量把页面中的,与servlet的字符转换统一起来

中文问题是比较麻烦,比较好的解决方法确实是用filter,但也要看你是那部出现的乱码,比如读取数据库就是乱码了,还是前台读取的问题

你是不是通过url传中文了或者method是GET,如果没有的话,用上面那个肯定可以的。否则的话,如果你用了url传中文,那么字符串在传递到服务器端后,会被编码为iso-8859-1,你必须为他解码,再重新编码,就如同下面的那样。。。。。。
当然你也可以修改server.xml中的connector标签就像楼上说的那样。。。。。。