我有一个REST入口点:
@RequestMapping(value = "user" method = RequestMethod.GET)
public List<User> getUsers( @RequestParam(value = "name") String name )
我使用AngularJS发送/rest/user?name=Иван
,请求在urlencode
中使用rest/user?name=%D0%98%D0%B2%D0%B0%D0%BD
进行编码。
但该方法在name
字符集中接收ISO_8859_1
,而不是像预期的那样接收UTF-8。
如果我写
new String(request.getName().getBytes( StandardCharsets.ISO_8859_1 ), StandardCharsets.UTF_8)
它变好了。但这不是一个正确的方法:)
我做错了什么以及如何解决?
===
P上。 S.
在我的web.xml中,我为CharacterEncodingFilter
编码配置了UTF-8
<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>
答案 0 :(得分:-2)
您是否使用gradle构建项目?在构建时尝试标志-Dfile.encoding = utf-8,默认编码是系统一