我試圖從請求標題獲取文件名,儘管我已經定義了字符編碼問題我的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