【问题标题】:UTF-16 encoding spring mvc and mysqlUTF-16编码spring mvc和mysql
【发布时间】:2017-07-06 09:22:15
【问题描述】:
  <filter>
    <filter-name>encodingFilter</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>

1)如何在 spring 过滤器中启用 UTF-16 编码 我需要从 JSP 中的文本框中获取 UTF-16 或 UCS2 字符到 Spring Controller 并插入到 Mysql 中。

2)如何将UTF-16数据插入mysql

我正在配置 JDBC URL,例如

"?useUnicode=yes&characterEncoding=UTF-8"

我的列架构是

`utf16` varchar(150) CHARACTER SET utf16 COLLATE utf16_unicode_ci NOT NULL,

【问题讨论】:

    标签: mysql spring-mvc unicode utf-16 ucs2


    【解决方案1】:

    我认为没有理由使用 CHARACTER SET utf16ucs2。你这样做的理由是什么?

    CHARACTER SET utf8mb4 是未来的标准。对应MySQL外的UTF-8,如"?useUnicode=yes&amp;characterEncoding=UTF-8"中提到的

    如果您确实需要CHARACTER SET utf16 在表格中,那么它应该可以按所示工作。 MySQL 从指定的客户端编码转换为指定的列字符集。是的,utf16 和 utf8 是不同的编码。

    【讨论】:

    • '我认为没有理由使用 CHARACTER SET utf16 或 ucs2' - 有时您必须使用现有资源
    • @msangel - 声明 client 使用这样的字符集,但声明 columns 为 utf8。
    • 可怕的事实:一些遗留数据库不支持 UTF8
    • 根据en.wikipedia.org/wiki/UTF-16#History,ucs2是1980年代后期开发的(原名“unicode”),而utf16和utf8是1990年代后期开发的,相差近10年
    • @msangel - 但您不必继续使用 ucs2。当您迁移到现代数据库时,请转换为 utf8。 MySQL 通过让您指定 input 编码为 ucs2 而 dataset 编码为 utf8 使这变得简单。
    猜你喜欢
    • 1970-01-01
    • 2011-08-21
    • 2012-03-13
    • 1970-01-01
    • 2020-08-02
    • 2017-04-27
    • 2011-08-18
    • 1970-01-01
    相关资源
    最近更新 更多