Java Web中文字符乱码分析:
Java Web程序开发中,由于Web容器(tomcat,WebLogic)默认使用了ISO-8859-1的编码格式(ps: 没办法,谁让容器基本都是国外的IT精英弄出来的),所以在Web应用的业务中也会使用默认的编码格式。即使浏览器提交的请求使用的是中文编码格式UTF-8,但是经过业务处理中默认编码,就会出现中文乱码问题。
一般在Java Web中使用Http请求时GET和POST两种,不同的请求方式乱码解决方案也不一样。
GET请求乱码解决:
1. 直接硬解码。 String xx = new String(request.getParameter("xx").getBytes("iso-8859-1"),"UTF-8");
2. 修改Tomcat编码。<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>
POST 请求乱码解决:
设置过滤器,设置 request.setCharacterEncoding(“UTF-8”);
response.setContentType("text/html;charset=UTF-8");
浏览器不同版本乱码解决:
统一设置JAVA的URLEncoder,然后跳转网页。