java web项目中,中文乱码是一个经常遇到而又非常头痛的问题,其中最容易出现乱码的环节就是在浏览器向服务器发送请求的过程。下边就这一问题介绍解决方法,希望会帮助到大家。以下转码都是以utf-8为参考,若为其他编码格式可自行修改。
一、response乱码
(1)设置服务器端的编码:response.setcharacterencoding(utf-8);
上边此设置一定要再response.getwriter()方法之前;
(2)通知浏览器发送的数据格式:response.setcontenttype(text/html;charset=utf-8);
(3)浏览器使用utf-8进行解码。
二、request乱码
1.post方式提交,参数存在于请求体中,只需要进行此设置即可:
request.setcharacterencoding("utf-8");
2.get方式提交,参数会拼接在uri地址后边,服务器默认按照iso8859-1进行解码,有两种解决方法:
(1).在程序中修改接收到的请求编码(此方法每次请求都需要转码,不推荐)
string str = request.getparameter("s");str = new string(str.getbytes("iso8859-1"),"utf-8")
(2)在tomcat安装文件夹中找到server.xml文件,查找<connector />标签进行修改(此方法一劳永逸)
<connector uriencoding="utf-8" port="8080" maxhttpheadersize="8192" maxthreads="150" minsparethreads="25" maxsparethreads="75" connectiontimeout="20000" disableuploadtimeout="true" />
只需在此标签中增加 uriencoding=utf-8 ,然后重启tomcat即可。
更多java知识请关注java基础教程。
以上就是java post请求乱码解决方法的详细内容。