PHPz2017-04-18 10:08:55
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");
伊谢尔伦2017-04-18 10:08:55
用其他的抓包工具測試你的回傳結果是否是utf-8的中文。
問題往往出現在源頭或最後一步。
如果是在頁面亂碼上你的JSP頁面沒有設定 charset "UTF-8"。
瀏覽器console裡面亂碼的話,用F12 網路 看看回應頭Content-Type = text/html,Encoding之類的。
這些環節沒有問題,那大概就是String 環境設定的問題,前面回答很值得參考。
大家讲道理2017-04-18 10:08:55
工程用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這個
PHP中文网2017-04-18 10:08:55
加沒加CharacterEncodingFilter?沒加的話加上試試看
如果不行:
用的哪個版本的spirng,哪個版本的tomcat?
以及:
哪有樓上這些說的這麼複雜。 。 。一片一片的xml看著就煩。 。 。