REST url @RequestParam编码无法解码为正确的格式(Spring MVC)

时间:2016-03-27 10:25:44

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

我正在使用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

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

可能是什么解决方案? 非常感谢!

2 个答案:

答案 0 :(得分:0)

我将tomcat 7改为tomcat 8,问题解决了......奇怪......

答案 1 :(得分:0)

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

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