据我所知,它必须是utf8mb4_unicode_ci
,但是:
> create table t1 (f1 varchar(255) collate utf8mb4_unicode_ci)
> insert into t1 (f1) values ('?')
我得到的是:
ERROR 1366 (22007) at line 1: Incorrect string value: '\xF0\xA2\x84\x82'
for column 'f1' at row 1
我要插入数据库的符号是这个。
问题出在连接字符集上。设置为 后
utf8mb4
,就成功了。一种方法是添加default-character-set = utf8mb4
到client
或mysql
部分~/.my.cnf
。UPD在添加之前
default-character-set
我~/.my.cnf
有:并
insert into t1 (f1) values ('?')
给了我:添加后
default-character-set = utf8mb4
我有:并
insert into t1 (f1) values ('?')
成功了。