我试图从请求标题获取文件名,尽管我已经定义了字符编码问题我的web.xml中的Spring编码筛选器 。Spring MVC 3.1 - 请求标题字符编码问题[UTF-8]
String fileName = request.getHeader("X-File-Name"); // wrong encoding
的web.xml
<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>
而且我已经添加URIEncoding="UTF-8"
配置到Tomcat server.xml文件。 并添加了相同的配置JAVA_OPTS。
-DuriEncoding=UTF-8 -Dfile.encoding=UTF-8
非常感谢Esailija的帮助,现在我能够获得正确的价值。 – talha06
非常脆弱,因为有HTTP标头的字符编码保证。 –
@ Michael-O是的,这就是为什么它表示UTF-8或ASCII。如果是在其他随机编码中,他会看到mojibake。我会推荐一个正常的查询参数,fwiw。 – Esailija