我有一个使用Spring MVC实现的搜索Spring MVC服务,该服务在JSON中返回一个响应。响应包含包含搜索项的href (self等)。中文搜索词在“参考文献”中没有正确显示,其显示方式如下:
%E5%A4%AA%E9%99%BD%E7%B3%BB%E4%B8%AD
我试过使用URLEndoer.encode(myString, "UTF-8"),但这不起作用。
编辑
我找到了根本原因,是对New URI(myparams).toAsciiString()的调用导致了这个问题。
发布于 2014-02-24 11:04:03
您需要使用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> 发布于 2014-02-24 11:04:03
在响应上设置的content-type头是什么?您可以通过使用浏览器中的开发工具查看HTTP响应来进行检查。
应该是:application/json; charset=UTF-8
发布于 2018-10-11 11:29:10
在发送响应时,可以在搜索方法中设置字符编码。
这将确保返回的响应在UTF-8中,并且汉字将显示@RequestMapping(value = "", method = RequestMethod.GET, produces = "application/json;charset=UTF-8") ResponseEntity<String> search(HttpServletRequest request, HttpServletResponse response); Edit:,我尝试了使用web.xml中的过滤器,但没有工作。
https://stackoverflow.com/questions/21985805
复制相似问题