爬数据添加记录到MySQL时报错如下:
OperationalError: (1366, "Incorrect string value: '\\xF0\\x9F\\x9B\\xAB\\xEF\\xB8...' for column 'secnic_describe' at row 1")
原因:mysql的UTF-8只支持三个字节的存储,而一般字符是三个字节,但是emoji表情是4个字节,所以存储不了。
解决:
查看数据库字符集:
show variables like '%character%';
-
将包含表情的字段设置为utf8mb4
ALTER TABLE secnic MODIFY secnic_describe VARCHAR(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
-
设置下表的字符集
ALTER TABLE secnic CHARSET=utf8mb4;
-
需要设置本数据库为utf8mb4
SET NAMES utf8mb4;
-
修改代码连接数据库时对应的字符集