2014-02-24 180 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

相关问题