如何使用Spring和MySQL配置Wildfly以支持Unicode表情符号?

时间:2018-07-06 09:55:37

标签: mysql spring spring-data wildfly

我知道已经有很多类似的问题,但是都没有解决我的问题。我只想将表情符号保存到数据库中。该请求以正确的格式正确命中了服务器,但是数据库仅保存问号而不是表情符号。如果我直接使用mysql查询插入表情符号,则可以使用。 Wildfly已正确连接到数据库。我做了以下步骤:

  • 在MySQL中,我执行了以下查询:
  

ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

表的排序规则都是utf8mb4_unicode_ci

  • 我使用JNDI连接到数据库。数据源连接网址位于 野蝇:
  

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年,默认情况下仍然无法使用。疯。任何建议将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

  

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

但是有这两行:

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

使用utf8mb4代替utf8很重要。

这个问题可能是重复的,但也许值得把它留在这里,以帮助那些认为自己像我一样尝试过一切并有类似条件的人。