如何使用 Spring 和 MySQL 配置 Wildfly 以支持 unicode 表情符号?
How to configure Wildfly with Spring and MySQL to support unicode emojis?
我知道已经有很多类似的问题,但是 none 解决了我的问题。我只想将表情符号保存到数据库中。请求以正确的格式正确命中服务器,但数据库只保存问号而不是表情符号。如果我直接使用 mysql 查询插入表情符号,它就可以工作。 Wildfly 已正确连接到数据库。我做了以下步骤:
- 在 MySQL 我执行了这个查询:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE =
utf8mb4_unicode_ci;
table的排序规则都是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。野蝇版本:11.0。 MySQL版本:5.7.22
我不知道我还应该做些什么才能让它发挥作用。现在是 2018 年,默认情况下这仍然不起作用。疯狂的。如有任何建议,我们将不胜感激。
解决方案是修改/etc/my.cnfMySQL 配置文件 almost 如此处解释:
但是有了这两行:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
使用utf8mb4代替utf8很重要
这个问题可能是重复的,但也许值得把它留在这里,以帮助那些认为他们已经像我一样尝试过所有事情并且有类似情况的人。
我知道已经有很多类似的问题,但是 none 解决了我的问题。我只想将表情符号保存到数据库中。请求以正确的格式正确命中服务器,但数据库只保存问号而不是表情符号。如果我直接使用 mysql 查询插入表情符号,它就可以工作。 Wildfly 已正确连接到数据库。我做了以下步骤:
- 在 MySQL 我执行了这个查询:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
table的排序规则都是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。野蝇版本:11.0。 MySQL版本:5.7.22
我不知道我还应该做些什么才能让它发挥作用。现在是 2018 年,默认情况下这仍然不起作用。疯狂的。如有任何建议,我们将不胜感激。
解决方案是修改/etc/my.cnfMySQL 配置文件 almost 如此处解释:
但是有了这两行:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
使用utf8mb4代替utf8很重要
这个问题可能是重复的,但也许值得把它留在这里,以帮助那些认为他们已经像我一样尝试过所有事情并且有类似情况的人。