1、乱码的分类
java乱码分为请求乱码和响应乱码。
2、请求乱码
---- GET乱码:
乱码原因:get请求的是后所有的参数都是带在url地址上,url地址默认就是iso8859-1编码。
解决办法:
1、让服务器接受url地址的时候,使用utf-8解析url地址
request.getParameter(“xa”).getBytes(“iso-8859-1”), “utf-8”
2、 在tomcat服务器的server.xml的8080端口配置处,添加上URIEncoding=“utf-8”
<Connector URIEncoding="utf-8" connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443"/>
----POST乱码:
乱码原因:post请求参数是带在请求体中。第一次获取请求体数据的时候就得调整好自己的编码格式,再去解析数据。
解决办法:1)、在第一次获取请求参数的之前。request.setCharacterEncoding(“utf-8”)
2)、SpringMVC如何解决乱码
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<!-- 使用一个初始化参数来告诉这个filter,使用的编码是什么 -->
<init-param>
<!--encoding就是指定request.setCharacterEncoding(this.encoding);请求乱码的 -->
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<!--forceEncoding如果为true,能帮我们设置响应的编码格式
response.setCharacterEncoding(this.encoding); -->
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
2响应乱码:
告诉浏览器返回给他的内容类型和编码格式
1)response.setContentType(“text/html;charset=utf-8”);
2)同上SpringMVC如何解决乱码