首页 > 解决方案 > 休眠 utf8mb4 字符集

问题描述

你能告诉我我做错了什么吗?

休眠版本:4.3.11.Final

玛丽亚数据库 10.3

在控制台中我可以看到:

Dec 30, 2018 5:02:20 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper$StandardWarningHandler logWarning
WARN: Incorrect string value: '\xF0\x9F\x90\xB5 D...' for column 'nick' at row 1

休眠.cfg.xml

<property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/dbname?autoReconnect=true&amp;zeroDateTimeBehavior=convertToNull&amp;useUnicode=true&amp;character_set_server=utf8mb4</property>
<property name="hibernate.connection.username">login</property>
<property name="hibernate.connection.password">password</property>
<property name="hibernate.connection.CharSet">utf8mb4</property>
<property name="hibernate.connection.characterEncoding">utf8</property>
<property name="hibernate.connection.useUnicode">true</property>

当我通过 PhpMyAdmin 插入相同的值时,它可以正常工作。

标签: javahibernatecharacter-encodingmariadb

解决方案


是的,MySQL需要utf8mb4. \xF0\x9F\x90\xB5但外界称它为UTF-8

&amp;character_set_server=utf8mb4

&amp;-->&

character_set_server=utf8mb4-->characterEncoding=UTF-8


推荐阅读