本文主要是介绍springmvc 请求参数中文乱码 ,@ResponseBody 返回中文乱码问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1. springmvc 请求参数中文乱码
一般在 web.xml 加上一个Filter设置编码为UTF-8可以解决
<!-- 处理请求参数中文乱码 --><filter><filter-name>utf8Filter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class><init-param><param-name>forceEncoding</param-name><param-value>true</param-value></init-param><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>utf8Filter</filter-name><url-pattern>/*</url-pattern></filter-mapping>
2 .@ResponseBody 注释方法 返回String导致中文乱码 一个比较有效解决方法是
public class EncodingPostProcessor implements BeanPostProcessor
{@Overridepublic Object postProcessBeforeInitialization(Object bean, String beanName)throws BeansException{if (bean instanceof RequestMappingHandlerAdapter) {List<HttpMessageConverter<?>> convs = ((RequestMappingHandlerAdapter) bean).getMessageConverters();for (HttpMessageConverter<?> conv: convs) {if (conv instanceof StringHttpMessageConverter) {((StringHttpMessageConverter) conv).setSupportedMediaTypes(Arrays.asList(new MediaType("text", "html", Charset.forName("UTF-8"))));}}}if(bean instanceof RequestResponseBodyMethodProcessor){List<HttpMessageConverter<?>> convs = ((RequestMappingHandlerAdapter) bean).getMessageConverters();for (HttpMessageConverter<?> conv: convs) {if (conv instanceof StringHttpMessageConverter) {((StringHttpMessageConverter) conv).setSupportedMediaTypes(Arrays.asList(new MediaType("text", "html", Charset.forName("UTF-8"))));}}}return bean;}@Overridepublic Object postProcessAfterInitialization(Object bean, String beanName)throws BeansException{return bean;}}
这篇关于springmvc 请求参数中文乱码 ,@ResponseBody 返回中文乱码问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!