java - 从 HTML 表单发布时,非英语 UTF 8 字符会发生变化

标签 java spring utf-8 character-encoding

当我从 HTML 表单中发布非英语字符时,在服务器端我收到一些 UTF-8 字符,但不是原始的 UTF-8 字符。例如,在卡纳达语中,“ಇಲಾಖೆಯ”变为“ಇಲತಖೆಯ”,或者在法语中,“département”变为“部门'。
我的 HTML 表单的属性 accept-charsetUTF-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/

相关文章:

java - 使用 RabbitMQ 实现 Saga 消息传递

java - 如何使用 antlr 在两个终端规则中以不同方式解析特殊字符?

java - 管理异常

java - 在构造函数中 Autowiring 单个参数

java - 如果 Item Reader 不返回任何内容,如何跳过 Spring Batch block 中的 Item Writer?

utf-8 - 这是什么字符编码?

java - 在 Windows 机器上使用 java 运行时类触发命令

java - Hibernate - 如何使用整数列表?

html - 特殊字符未按预期显示

python - 如何使用 Django 和 UTF-8 内容类型作为模板?