MySQL编码问题(无法插入中文)

1.问题描述

2.解决方案

1.问题描述

当使用django时,如果数据库是MySQL,插入中文会报错:

Incorrect string value: 'xF0x9F...' 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位置。找到后请在以下三部分里添加如下内容: 

1 [client] 
2 default-character-set = utf8mb4 
3 [mysql] 
4 default-character-set = utf8mb4 
5 [mysqld] 
6 character-set-client-handshake = FALSE 
7 character-set-server = utf8mb4 
8 collation-server = utf8mb4_unicode_ci 
9 init_connect='SET NAMES utf8mb4'

完成上述步骤后重启MySQL即可

原文地址:https://www.cnblogs.com/wyb666/p/9553393.html