您好,登錄后才能下訂單哦!
新人學習springMVC開發框架,用到ajax 通過 @response 來獲取返回值。
不得不說 @response的功能很強大,可以直接將返回類打包成json格式省卻了很多事,
但是如果返回值是String類型的話,就會出現中文亂碼問題,自己試著做了一些調整,并在網上查看了許多方法,在這里總結一下。
1.添加注解 produces = {"application/json;charset=UTF-8"}
@RequestMapping(value = "/method.do", produces = {"application/json;charset=UTF-8"})
適用于少量的,每寫一個方法就得添加一次,不適合統一處理。
2.添加配置 在springMVC-*.xml里面進行String編碼配置,如下
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx" xmlns:context="http://www.springframework.org/schema/context" xmlns:mvc="http://www.springframework.org/schema/mvc" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd"> <!-- utf-8編碼 --> <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <constructor-arg value="UTF-8" /> </bean> </mvc:message-converters> </mvc:annotation-driven> <!-- <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> <bean class="org.springframework.http.converter.StringHttpMessageConverter"> <property name="supportedMediaTypes" value="text/plain;charset=UTF-8" /> </bean> </mvc:message-converters> </mvc:annotation-driven> --> 。。。。。 </beans>
如果可以看org.springframework.http.converter.StringHttpMessageConverter這個類的源碼的話就會發現其默認的編碼方式為 "ISO-8859-1",
這個應該是造成我們中文亂碼的主要原因。
在這里不能不吐槽一下,好多老外寫的jar包都會出現中文亂碼問題,究其主要原因就是人家不用中文。。。故肯定會選擇內存占用小的"ISO-8859-1",
啥時候才能大家都統一使用utf-8呀。。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。