2014-02-24 178 views
0

我有一個搜索REST服務使用Spring MVC實現,返回的響應爲JSON。該響應包含hrefs(自我等),其中包含搜索詞。一位中國搜索詞是不是在HREF中正確顯示,它顯示是這樣的:中文字符在Spring MVC響應中無法正確顯示

%E5%A4%AA%E9%99%BD%E7%B3%BB%E4%B8%AD

我嘗試使用URLEndoer.encode(myString, "UTF-8"),但沒有奏效。

編輯

我找到了根源,它是New URI(myparams).toAsciiString()通話這是導致該問題。

+0

五月這個答案可以幫助您:http://stackoverflow.com/questions/5408340/spring-mvc-can-not-decode-chinese-characters –

回答

1

您需要利用CharacterEncodingFilter類。 CharacterEncodingFilter過濾器需要按以下方式在web.xml中聲明。

<filter> 
    <filter-name>encodingFilter</filter-name> 
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 
    <init-param> 
     <param-name>encoding</param-name> 
     <param-value>UTF-8</param-value> 
    </init-param> 
    <init-param> 
     <param-name>forceEncoding</param-name> 
     <param-value>true</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>encodingFilter</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
0

什麼是content-type header設置爲響應?您可以使用瀏覽器中的開發人員工具查看HTTP響應進行檢查。

它應該是:application/json; charset=UTF-8

相關問題