【发布时间】:2016-09-13 13:03:43
【问题描述】:
我有一个 REST 入口点:
@RequestMapping(value = "user" method = RequestMethod.GET)
public List<User> getUsers( @RequestParam(value = "name") String name )
我正在使用 AngularJS 向 /rest/user?name=Иван 发送,请求在 rest/user?name=%D0%98%D0%B2%D0%B0%D0%BD 中使用 urlencode 编码。
但该方法在ISO_8859_1 字符集中接收name,而不是像预期的那样以UTF-8 接收。
如果我写
new String(request.getName().getBytes( StandardCharsets.ISO_8859_1 ), StandardCharsets.UTF_8)
它变得很好。但这不是正确的方法:)
我做错了什么以及如何解决?
===
P。
在我的 web.xml 中,我有一个为 UTF-8 编码配置的 CharacterEncodingFilter
<filter>
<filter-name>CharacterEncodingFilter</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>
</filter>
【问题讨论】:
标签: java angularjs spring rest