【发布时间】:2019-12-22 21:34:41
【问题描述】:
我有一个“旧”数据库(在 utf 8 中),我在其中使用 JDBC 进行读写。现在,我还必须能够将表情符号存储到表格的一列中。 我已将相关列的字符集更改为 utf8mb4:
ALTER TABLE
myTable
CHANGE column_name column_name
longtext
CHARACTER SET utf8mb4
COLLATE utf8mb4_unicode_ci
NOT NULL;
但是,当我尝试在该列中插入表情符号时,我得到了著名的错误
java.sql.SQLException: Incorrect string value: '\xF0\x9F\x91\x8D\xF0\x9F...'
我应该转换整个数据库,还是我做错了什么?
【问题讨论】:
-
您使用哪个版本的 MySQL Connector/J,您使用哪些连接属性?您是否将 MySQL 服务器属性 character_set_server 设置为 utf8mb4?
-
请提供
SHOW CREATE TABLE myTable-- 我不会验证该列的声明是否正确。