我知道已经有很多类似的问题,但是都没有解决我的问题。我只想将表情符号保存到数据库中。该请求以正确的格式正确命中了服务器,但是数据库仅保存问号而不是表情符号。如果我直接使用mysql查询插入表情符号,则可以使用。 Wildfly已正确连接到数据库。我做了以下步骤:
ALTER DATABASE database_name CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
表的排序规则都是utf8mb4_unicode_ci
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
<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>
我不知道该怎么做才能使其正常工作。现在是2018年,默认情况下仍然无法使用。疯。任何建议将不胜感激。
答案 0 :(得分:0)
解决方案是修改 /etc/my.cnf MySQL配置文件几乎,如此处所述:
但是有这两行:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
使用utf8mb4代替utf8很重要。
这个问题可能是重复的,但也许值得把它留在这里,以帮助那些认为自己像我一样尝试过一切并有类似条件的人。