java - Spring MVC 响应中中文字符显示不正确

标签 java spring-mvc encoding internationalization

我有一个使用 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/

相关文章:

java - 如何反转 char 数组从最后一个到第一个的顺序

java - 禁用标准错误自动刷新 (Java)

Java 标准输出不产生输出

spring - 不允许 HTTP 405 - Spring Boot + Spring Security

java - 有谁知道如何成功集成Seam和Spring MVC?

Java Cookie 添加/删除问题?

Java, XML DocumentBuilder - 解析时设置编码

java - 用于编码 ASCII 的不可映射字符,但我的文件是 UTF-8

json - 如何使用 yason 对 bool 值进行编码?

java - JVM 能否自动使用更多交换空间来防止内存不足错误