以下前端都是 utf-8 字符集编码
一、后台接收
1.1、 get 请求乱码
get 请求中,请求参数在请求头中;
乱码解决方法:
a、通过在web 服务器中配置编码格式:tomcat 中,在 Connector 中添加URIEncoding="UTF-8";
1.2、post 请求乱码
post 请求中,请求参数分两部份,
1.2.1、url?参数,这部分参数在请求头中
乱码解决方法:与 get 请求中相同
1.2.2、其他请求参数在请求体中(这部分参数 web服务器不会对其编码)
乱码解决方法:
a、request.setCharacterEncoding("UTF-8"); 注:要在 request 任何操作之前设置,否则无效。
b、在 web.xml 中配置拦截器来设置编码字符集:
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
二、响应前端
2.1、response println 乱码
解决方法:
response.setContentType("text/html; charset=utf-8");
response.setHeader("content-type","text/html;charset=UTF-8");
这两句可以解决响应前端的乱码问题;
注:要在 response 任何操作之前设置,否则无效!
2.2、spring mvc 中,注解@response 返回 乱码
在 spring 配置中扫描 注解映射到方法上 时,添加编码字符集配置:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="messageConverters">
<list>
<!-- 设置返回字符串编码 -->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<!-- 注解response 输出中文时, 这个配置可以解决 在ajax中乱码的问题,但直接返回到界面时还是乱码
<list>
<value>text/plain;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
-->
<!-- 注解response 输出中文时, 这个配置可以解决 在ajax中乱码的问题,也可以解决直接返回到界面时乱码的问题 -->
<list>
<bean class="org.springframework.http.MediaType">
<constructor-arg index="0" value="text" />
<constructor-arg index="1" value="plain" />
<constructor-arg index="2" value="UTF-8" />
</bean>
</list>
</property>
</bean>
<!-- json转换器
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
<list>
<value>applicaton/json;charset=UTF-8</value>
<value>text/javascript;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
-->
</list>
</property>
</bean>
--------------------------------------------------------------------
若有其他凝问或文中有错误,请及时向我指出,
我好及时改正,同时也让我们一起进步。
email :
[email protected]
qq : 1035862795
敲门砖: 代码谱写人生