【问题标题】:REST url @RequestParam encoding cannot be decoded to proper format (Spring MVC)REST url @RequestParam 编码无法解码为正确的格式(Spring MVC)
【发布时间】:2016-03-27 10:25:43
【问题描述】:

我正在使用 Spring MVC 编写一个 Rest 控制器,目前我只有一个带有一个参数请求的端点:

@RequestMapping(value = "/city", method = RequestMethod.GET)
@ResponseBody
public List<String> getCities(@RequestParam String name)  {
    ...
}

我正在使用可以包含一些特殊字符(á、é、ő、ű、ú...)的匈牙利城市名称 - 它们都来自数据库。

当我用这个调用其余端点时:

/serviceoffer/region/city?name=Borsod-Aba%C3%BAj-Zempl%C3%A9n

我把这个字符串变成了名字:

Borsod-Abaúj-Zemplén

但我应该得到这个:

Borsod-Abaúj-Zemplén

不知道是不是编码/解码问题,但我尝试解码没有成功。

有什么解决办法? 非常感谢!

【问题讨论】:

  • 您使用什么 servlet 容器/如何部署应用程序?
  • 我使用的是 Apache Tomcat 7,我使用的是 STS。该项目处于早期状态,因此我正在以最简单的方式运行该应用程序。

标签: java spring spring-mvc encoding character-encoding


【解决方案1】:

我把我的tomcat 7换成tomcat 8,问题就解决了……奇怪……

【讨论】:

【解决方案2】:

由于您使用 Tomcat 和 GET 请求,您应该将 URIEncoding 从默认的 ISO8859-1 更改为 UTF-8。更改 config/server.xml 中的 HTTP 连接器设置:

<Connector ... URIEncoding="UTF-8" />

【讨论】:

    猜你喜欢
    • 2020-11-26
    • 1970-01-01
    • 2015-04-30
    • 1970-01-01
    • 2022-01-15
    • 2017-07-11
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多