默认情况下,Tomcat对请求采用的默认编码是ISO-8859-1, 这样我们提交的汉字被认为是ISO-8859-1的编码,所以在程序中接收时显示乱码 。 在过滤器中调用request.setCharacterEncoding("GBK"),那么Post上来的汉字将被认为是GBK编码,而 Tomcat5对于Get请求上来的编码并不根据过滤器的设定辨认编码方式,默认的依然是ISO-8859-1,所以,即使你的页面使用默认的编码方式进 行编码,然后使用ISO-8859-1进行解码,得到的结果也不对 。
解决方法:
在TOMCAT中的conf/server.xml中的<Connector中添加两个设置
useBodyEncodingForURI="true" //设置POST和GET使用相同编码
URIEncoding="UTF-8" //对URI使用utf-8编码处理
可以用String提供的编码转化测试,请求的参数值:
name = new String(name.getBytes("ISO8859-1"),"UTF-8").trim();
以上转自:http://blog.csdn.net/cuker919/article/details/6107469
更新:
post方式即使象上面那样配置,还是有一些问题。在客户端把发送的post请求设为utf-8,服务端还是要转成ISO-8859-1的比特流,然后再转成utf-8才不会乱码。代码如下:
client:
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream(),"utf-8");
out.write("&city=安庆");
或者
OutputStreamWriter out = new OutputStreamWriter(connection.getOutputStream());
out.write("&city="+URLEncoder.encode("安庆","utf-8"));
sever:
request.setCharacterEncoding("UTF-8");
或者
String city = new String(request.getParameter("city").getBytes("ISO-8859-1"),"utf-8");
分享到:
相关推荐
通过简单的办法解决Tomcat中出现的乱码,本文章使用于jsp servlet初学者
tomcat GET请求与POST请求
tomcat get提交中文乱码解决方案,修改tomcat server.xml 中以下为
解决tomcat中文乱码问题,有详细的解释说明,希望对需要的人有所帮助
主要介绍了Tomcat修改get提交请求乱码问题的解决方案,需要的朋友参考下
Docker容器部署tomcat出现中文乱码.docx
部署tomcat下的项目 监控的时候发现 日志中文乱码 ,tomcat 下catalina.out 日志乱码问题处理
Tomcat和weblogic中文乱码问题解决方案
将cmd编码格式永久改为utf-8,解决部署以后tomcat乱码问题
GET请求与POST请求-Tomcat视频教程
解决方式进入tomcat的server配置中进行添加参数配置 connectionTimeout="20000" redirectPort="8443" URIEncoding="UTF-8" relaxedPathChars="[]{}|\\^" relaxedQueryChars="[]{}|\\^" />
Tomcat PostGet 中文編碼處理方法
Tomcat环境下JSP中文乱码问题的解决
解决tomcat下中文乱码问题, 在tomcat_home\conf\server.xml 中的Connector元素中设置URIEncoding属性为合适的字符编码
而该工具可以自动解决UTF-8和GBK乱码的问题。 使用教程: 直接替换原先项目的Tomcat,将JavaWeb项目(Servlet、SSH、SSM框架的项目)直接部署到该Tomcat8中即可,无需做其他的额外的操作。 运行教程: 可以通过...
解决tomcat中文乱码的问题!!!!!! !!!!!!!!!!!!!!!!!!!
解决tomcat中文乱码问题.doc,很宝贵的资料。
weblogic和tomcat 下载附件乱码问题 weblogic和tomcat 下载附件乱码问题
最近几个项目,都出现了乱码问题。某些通过URL来传送、值为汉字的参数,在页面中显示的是乱码,但是在本地开发环境是正常显示的。排除的因素当然就是服务器的设置不当了,但具体是那些原因呢?一般我们所装的linux...
解决Tomcat乱码的问题