您好,登錄后才能下訂單哦!
ajax的返回值一直亂碼,
試過各種ContentType設定utf-8的方法,就是搞不定,
而且明明返回值是json字符串,一直出現ajax取得返回值類型為object。
最后查資料發現,
SpringMVC使用 @ResponseBody注解,返加字符串不做任何處理時,有可能會出現亂碼問題。
這是由于 StringHttpMessageConverter 類中,默認采用的字符集是 ISO-8859-1。
public class StringHttpMessageConverter extends AbstractHttpMessageConverter<String> { public static final Charset DEFAULT_CHARSET = Charset.forName("ISO-8859-1"); |
解決辦法:
那么要解決亂碼問題,需要改變 StringHttpMessageConverter 中的默認字符集,本文中以UTF-8為例。
<bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"> <property name="messageConverters"> <list> <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter"> <property name="supportedMediaTypes"> <list> <value>text/html;charset=UTF-8</value> <value>text/plain;charset=UTF-8</value> <value>application/json;charset=UTF-8</value> </list> </property> </bean> </list> </property> </bean> <!-- mvc:annotation-driven/--> <mvc:annotation-driven validator="validator"/> |
注:配置必須在 <mvc:annotation-driven /> 之前,否則將不會啟效;<mvc:annotation-driven /> 會自動注冊DefaultAnnotationHandlerMapping 與AnnotationMethodHandlerAdapter。 |
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。