首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Spring响应中没有正确显示汉字

在Spring响应中没有正确显示汉字
EN

Stack Overflow用户
提问于 2014-02-24 11:00:29
回答 3查看 2.1K关注 0票数 0

我有一个使用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()的调用导致了这个问题。

EN

回答 3

Stack Overflow用户

发布于 2014-02-24 11:04:03

您需要使用CharacterEncodingFilter类。CharacterEncodingFilter过滤器需要以以下方式在web.xml中声明。

代码语言:javascript
复制
<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> 
票数 1
EN

Stack Overflow用户

发布于 2014-02-24 11:04:03

在响应上设置的content-type头是什么?您可以通过使用浏览器中的开发工具查看HTTP响应来进行检查。

应该是:application/json; charset=UTF-8

票数 0
EN

Stack Overflow用户

发布于 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中的过滤器,但没有工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21985805

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档