首页 > 代码库 > 解决Spring MVC @ResponseBody返回html中中文字符串乱码问题

解决Spring MVC @ResponseBody返回html中中文字符串乱码问题

最近有个应用,通过responsebody返回完整的html页面时出现乱码是异常的问题,因为是通过responsebody返回,所以一开始设置了text/plain的字符集,如下:

<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
   <bean class="org.springframework.http.converter.StringHttpMessageConverter">
     <property name="supportedMediaTypes" value = "http://www.mamicode.com/text/plain;charset=UTF-8" />
   </bean>
  </mvc:message-converters>
</mvc:annotation-driven>

发现还是没解决。

于是看debug日志,发现spring StringHttpMessageConverter根据内容识别出是html,根据text/html进行处理,将其改成了html/plain,问题解决,如下:

<mvc:annotation-driven>
    <mvc:message-converters register-defaults="true">
   <bean class="org.springframework.http.converter.StringHttpMessageConverter">
     <property name="supportedMediaTypes" value = "http://www.mamicode.com/text/plain;charset=UTF-8" />
   </bean>
  </mvc:message-converters>
</mvc:annotation-driven>

解决Spring MVC @ResponseBody返回html中中文字符串乱码问题