【发布时间】:2014-05-11 20:50:07
【问题描述】:
在我的控制器中,我有这个方法:
@RequestMapping(value = "/find-by-company-name/{companyName}", method = RequestMethod.GET)
public CustomerDto findByCompanyName(@PathVariable String companyName){
return customerService.findByCompanyName(companyName);
}
当我使用 /find-by-company-name/Mestská%20knižnica 这样的 URL 时,我会在 companyName 变量中得到 Mestsk?? kni??nica。
这个问题有解决办法吗?
在 web.xml 我使用:
<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>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
【问题讨论】:
-
This question在底层服务为Tomcat时有解决方案。如果您使用的是 Tomcat,那么您的问题是重复的 =),如果您使用的是其他服务器/应用程序容器,那么您应该看看是否有某种方法可以配置 URI 编码。
标签: java spring tomcat spring-mvc