【问题标题】:Russian Characters are appearing as ??? in Spring-MVC俄语字符显示为 ???在 Spring-MVC 中
【发布时间】:2019-07-29 15:56:42
【问题描述】:

所以我创建了一个控制器

@Controller
@RequestMapping("/hello")
public class HelloController {

    @RequestMapping("/all")
    @ResponseBody
    public String display()
    {
        return "Мегафон Игры";  //russian characters
    }   
}

现在当我点击网址http://localhost:8080/SpringMVC/hello/all 我在回复中收到??????? ????

我已经在tomcat的server.xml文件中配置了URIEncoding类似的东西

<Connector connectionTimeout="20000" port="8080" protocol="HTTP/1.1" redirectPort="8443" URIEncoding="UTF-8"/>` 
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" URIEncoding="UTF-8"/>

我已经在 Chrome 浏览器、邮递员和 Eclipse 控制台上测试了我的响应。

我什至尝试在 web.xml 文件中添加编码过滤器

<filter>
    <filter-name>encoding-filter</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>FALSE</param-value>
    </init-param>
 </filter>
 <filter-mapping>
    <filter-name>encoding-filter</filter-name>
    <url-pattern>/*</url-pattern>
 </filter-mapping>

请帮我看看我错过了什么?

【问题讨论】:

    标签: java spring-mvc tomcat servlets utf-8


    【解决方案1】:

    可能是您需要定义响应正文的编码。
    为此,您可以使用 @RequestMapping 注释,例如

    @RequestMapping(
         value = "/all", 
         method = RequestMethod.GET,
         produces = MediaType.APPLICATION_JSON_UTF8_VALUE
    )
    

    【讨论】:

    • @ShubhamChopra 太棒了!顺便说一句,我以为我回到了过去哈哈哈你删除了旧评论吗?
    • 我不知道,我从来没有删除过它不存在的地方,所以我想把它加回来,
    【解决方案2】:

    您是否在构建项目时定义了源编码?

    【讨论】:

    • 这应该是一条评论。
    • 我在 pom.xml 中添加了 UTF-8
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 2012-04-27
    • 2016-04-25
    • 1970-01-01
    相关资源
    最近更新 更多