当我从 HTML 表单中发布非英语字符时,在服务器端我收到一些 UTF-8 字符,但不是原始的 UTF-8 字符。例如,在卡纳达语中,“ಇಲಾಖೆಯ”变为“ಇಲತಖೆಯ”,或者在法语中,“département”变为“部门'。
我的 HTML 表单的属性 accept-charset
为 UTF-8
,我的 元内容类型
为 text/html;字符集=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 表单发布的原始文本?
最佳答案
确保您的 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 复制粘贴的?
关于java - 从 HTML 表单发布时,非英语 UTF 8 字符会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28563202/