84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
业精于勤,荒于嬉;行成于思,毁于随。
还得看你的web容器是什么编码啊... 踩着踩着也就过去了.
对spring-mvc对编码适配器做编码支持,没记错是标签名为:
<mvc:message-converters>
的货
spring mvc 添加 Jackson 支持
添加spring mvc 配置
<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg name="defaultCharset" value="UTF-8"/> </bean> </mvc:message-converters> </mvc:annotation-driven>
或者 重写 StringHttpMessageConverter
/* 将 */ public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1"); /* 改 */ public static final Charset DEFAULT_CHARSET = Charset.forName("UTF-8");
用其他的抓包工具测试你的返回结果是否是utf-8的中文。问题往往出现在源头或者最后一步。如果是在页面乱码上你的JSP页面没有设置 charset "UTF-8"。浏览器console里面乱码的话,用F12 网络 看看响应头Content-Type = text/html,Encoding之类的。这些环节没有问题,那大概就是String 环境设置的问题,前面回答很值得参考。
工程中用springmvc返回json格式时,中文乱码了,看了一下springmvc源码发现 StringHttpMessageConverter 这个类的默认编码为ISO-8859-1(悲剧,springmvc这么大的东西怎么不用utf-8,搞不懂)
下面是解决方法,
springmvc 的配置文件:
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter" > <property name="messageConverters"> <list> <bean class = "org.springframework.http.converter.StringHttpMessageConverter"> <property name = "supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html; charset=utf-8</value> </list> </property> </bean> </list> </property> </bean> <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"> <property name="interceptors"> <list> </list> </property> </bean>
使用这个配置要把springmvc这个<mvc:annotation-driven /> 删掉,不要用springmvc默认的初始化配置
加没加CharacterEncodingFilter?没加的话加上试试看如果不行:用的哪个版本的spirng,哪个版本的tomcat?以及:哪有楼上这些说的这么复杂。。。一片一片的xml看着就烦。。。
还得看你的web容器是什么编码啊... 踩着踩着也就过去了.
对spring-mvc对编码适配器做编码支持,没记错是标签名为:
<mvc:message-converters>
的货
spring mvc 添加 Jackson 支持
添加spring mvc 配置
或者 重写 StringHttpMessageConverter
用其他的抓包工具测试你的返回结果是否是utf-8的中文。
问题往往出现在源头或者最后一步。
如果是在页面乱码上你的JSP页面没有设置 charset "UTF-8"。
浏览器console里面乱码的话,用F12 网络 看看响应头Content-Type = text/html,Encoding之类的。
这些环节没有问题,那大概就是String 环境设置的问题,前面回答很值得参考。
工程中用springmvc返回json格式时,中文乱码了,看了一下springmvc源码发现 StringHttpMessageConverter 这个类的默认编码为ISO-8859-1(悲剧,springmvc这么大的东西怎么不用utf-8,搞不懂)
下面是解决方法,
springmvc 的配置文件:
使用这个配置要把springmvc这个<mvc:annotation-driven /> 删掉,不要用springmvc默认的初始化配置
加没加CharacterEncodingFilter?没加的话加上试试看
如果不行:
用的哪个版本的spirng,哪个版本的tomcat?
以及:
哪有楼上这些说的这么复杂。。。一片一片的xml看着就烦。。。