从HTML表单发布时,非英语UTF 8字符会发生更改

时间:2015-02-17 14:03:03

标签: java spring utf-8 character-encoding

当我从我的HTML表单发布非英语字符时,在服务器端我收到一些UTF-8字符,但不是原始的UTF-8字符。例如,在Kannada'ಇಲಾಖೆಯ'变为'ಇಲಾà²-ೆಯ',或者用法语,'département'变为'的 DA©partement ”。
我的HTML表单的属性accept-charsetUTF-8,我有meta content typetext/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表单发布的原始文本吗?

1 个答案:

答案 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复制粘贴?