1.爬虫插入 mysql时报 "Incorrect string value: '\xF0\x9F\x93\x9D\xC2\xA0...' for column 'con的错误。
原因
Mysql的utf8编码最多3个字节,可能有4个字节的字符。utf8mb4兼容utf8,且比utf8能表示更多的字符。通常是emoji表情符号
(1)修改数据库的字符集
字符集编码修改成utf8mb4_unicode_ci 。
如果已经创建了表,还要修改表的字符集
相当于
ALTER TABLE `dbname`.`tablename` COLLATE = utf8mb4_unicode_ci ;
(2)或者考虑过去掉表情
pip install emoji
清除命令:
emoji.demojize(str)
(3)也是过滤掉表情不用导入emoji包
def filter_emoji(desstr,restr=''): try: co = re.compile(u'[U00010000-U0010ffff]') except re.error: co = re.compile(u'[uD800-uDBFF][uDC00-uDFFF]') return co.sub(restr, desstr)
我只用第二种方法,