当我从我的HTML表单发布非英语字符时,在服务器端我收到一些UTF-8字符,但不是原始的UTF-8字符。例如,在Kannada'ಇಲಾಖೆಯ'变为'ಇಲಾà²-ೆಯ',或者用法语,'département'变为'的 DA©partement ”。
我的HTML表单的属性accept-charset
为UTF-8
,我有meta content type
到text/html; charset=UTF-8
。我的JBoss服务器也配置为UTF-8
。
我在Maven编译了源代码为UTF-8 我在web.xml中添加了CharactersetEncoderFilter作为 -
<filter>
<filter-name>encoding-filter</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>encoding-filter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
无论如何都要取回从HTML表单发布的原始文本吗?
答案 0 :(得分:1)
确保您的JSP具有pageEncoding = UTF-8。在web.xml中:
<jsp-config>
<jsp-property-group>
<url-pattern>*.jsp</url-pattern>
<page-encoding>UTF-8</page-encoding>
</jsp-property-group>
</jsp-config>
您的浏览器是否是Internet Exploder?
输入实际上是UTF-8还是从MS Word复制粘贴?