最近在保存微博数据到(csv文件)时报错:
UnicodeEncodeError: 'gbk' codec can't encode character '\U0001f9e0' in position 230: illegal multibyte sequence
打印输出:print("\U0001f9e0") 结果是? ,数据中类似这样的特殊数据很多,导致无法保存。
解决方法是:message = message.encode("gbk", "ignore").decode("gbk")
这里通过encode()将Unicode编码转换成gbk编码,在转换的过程中通过“ignore”忽略掉gbk不能识别的字符(?),然后再把gbk转换成Unicode编码。当然,这并不是一种完美的方式,毕竟牺牲部分字符串。