业精于勤,荒于嬉;行成于思,毁于随。
還得看你的web容器是什麼編碼啊... 踩著踩著也就過去了.
對spring-mvc對編碼適配器做編碼支持,沒記錯是標籤名為:
的貨
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這個 刪掉,不要用springmvc預設的初始化配置
加沒加CharacterEncodingFilter?沒加的話加上試試看如果不行:用的哪個版本的spirng,哪個版本的tomcat? 以及:哪有樓上這些說的這麼複雜。 。 。一片一片的xml看著就煩。 。 。
還得看你的web容器是什麼編碼啊... 踩著踩著也就過去了.
對spring-mvc對編碼適配器做編碼支持,沒記錯是標籤名為:
的貨
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這個 刪掉,不要用springmvc預設的初始化配置
加沒加CharacterEncodingFilter?沒加的話加上試試看
如果不行:
用的哪個版本的spirng,哪個版本的tomcat?
以及:
哪有樓上這些說的這麼複雜。 。 。一片一片的xml看著就煩。 。 。