我有一个使用 Spring MVC
实现的搜索 REST
服务,它返回 JSON
格式的响应。响应包含包含搜索词的 href(自身等)。中文搜索词在 href 中显示不正确,显示如下:
%E5%A4%AA%E9%99%BD%E7%B3%BB%E4%B8%AD
我尝试使用 URLEndoer.encode(myString, "UTF-8")
但没有成功。
编辑
我找到了根本原因,是对 New URI(myparams).toAsciiString()
的调用导致了问题。
最佳答案
您需要使用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>
关于java - Spring MVC 响应中中文字符显示不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21985805/