1.问题描述
2.解决方案
1.问题描述
当使用django时,如果数据库是MySQL,插入中文会报错:
Incorrect string value: '\xF0\x9F...' for column 'XXX' at row 1
2.解决方案
将已经建好的库和表转成utf8mb4
使用如下命令:
- 更改数据库编码:alter database DATABASE_NAME character set utf8mb4 collate utf8mb4_general_ci;
- 更改数据表编码:alter table TABLE_NAME convert to character set utf8mb4 collate utf8mb4_bin;
修改mysql配置文件my.cnf(windows为my.ini) :
my.cnf一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容:
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'
完成上述步骤后重启MySQL即可