java - 休眠 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&zeroDateTimeBehavior=convertToNull&useUnicode=true&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 插入相同的值时,它可以正常工作。
解决方案
是的,MySQL需要utf8mb4
. \xF0\x9F\x90\xB5
但外界称它为UTF-8
。
&character_set_server=utf8mb4
&
-->&
character_set_server=utf8mb4
-->characterEncoding=UTF-8
推荐阅读
- ios - 如何同时更改我的导航标题字体和颜色?
- javascript - 正则表达式查找 css 块
- angular - 在 app.module.ts 中包含 FormsModule 时,我可以在每个组件中使用 [(ngModel)]
- reactjs - 在 React Web 应用程序的本地服务器上部署时出现 eslint 错误
- c# - 使用 Android.WorkManager 的 Xamarin Android 绑定
- postgresql - 查找日期范围 Postgres 之间的差距
- c# - 错误:已处理证书链,但以根错误终止.Net Framework 4.7
- django - Django createview 自定义验证
- linux - Jmeter cmdrunner 观察到乱码
- android - 反应原生谷歌登录错误取消