【问题标题】:How to configure Wildfly with Spring and MySQL to support unicode emojis?如何使用 Spring 和 MySQL 配置 Wildfly 以支持 unicode 表情符号?
【发布时间】:2018-12-14 21:44:57
【问题描述】:

我知道已经有很多类似的问题,但没有一个能解决我的问题。我想简单地将表情符号保存到数据库中。请求以正确的格式正确地到达服务器,但数据库只保存问号而不是表情符号。如果我直接用 mysql 查询插入表情符号,它就可以工作。 Wildfly 已正确连接到数据库。我做了以下步骤:

  • 在 MySQL 中我执行了这个查询:

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

表格的排序规则都是utf8mb4_unicode_ci

  • 我使用 JNDI 连接到数据库。中的数据源连接 url 野蝇:

jdbc:mysql://mydomain/mydb?useUnicode=yes

也试过了:jdbc:mysql://mydomain/mydb?useUnicode=true&useEncoding=true&character_set_server=utf8mb4

还有:jdbc:mysql://mydomain/mydb?useUnicode=true&useEncoding=true&characterEncoding=UTF-8&character_set_server=utf8mb4

  • 在 Spring 中配置部分是:
<property name="jpaProperties">
    <props>
        <prop key="hibernate.hbm2ddl.auto">update</prop>
        <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>
        <prop key="hibernate.show_sql">true</prop>
        <prop key="hibernate.format_sql">true</prop>
        <prop key="hibernate.connection.CharSet">utf8mb4</prop>
        <prop key="hibernate.connection.characterEncoding">utf8mb4</prop>
        <prop key="hibernate.connection.useUnicode">true</prop>
    </props>
</property>
  • 我使用的是 8.0.11 版本的 mysql-connector。 Wildfly 版本:11.0。 MySQL 版本:5.7.22

我不知道我还应该做些什么才能让它发挥作用。现在是 2018 年,默认情况下仍然无法正常工作。疯狂的。任何建议将不胜感激。

【问题讨论】:

    标签: mysql spring spring-data wildfly


    【解决方案1】:

    解决方案修改 /etc/my.cnf MySQL 配置文件几乎,如此处所述:

    https://stackoverflow.com/a/3513812/4109477

    但是有了这两行:

    [mysqld]
    character-set-server = utf8mb4
    collation-server = utf8mb4_unicode_ci
    

    使用 utf8mb4 代替 utf8 很重要。

    这个问题可能是重复的,但也许值得把它留在这里,以帮助那些认为他们已经像我一样尝试过所有事情并且有类似情况的人。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-07-23
      • 2015-08-21
      • 2020-02-29
      • 2018-09-23
      • 1970-01-01
      • 2019-01-27
      • 2013-08-10
      • 2019-01-20
      相关资源
      最近更新 更多