1 条件背景
通过爬虫获取到的数据,要存入数据库,由于数据库的编码问题,一些分外字符涌现缺点,无法进入数据库
办理办法:过滤掉这些分外字符,包含emoji表情等各种分外字符
2 剔除除中英文及数字外的其他任何字符
这种方法大略粗暴,直接把非中英文及数字的所有字符串删除,代码如下:
import redef filter_str(desstr, restr=''): # 过滤除中英文及数字以外的其他字符 res = re.compile("[^\u4e00-\u9fa5^a-z^A-Z^0-9]") return res.sub(restr, desstr)
3 emoji 表情库【方法 1】:emoji 处理库,emoji 官网:https://pypi.org/project/emoji/
# 安装 pip install emoji
import emojiemoji_str = "python is "# 分外字符转换为正常字符(相称于解码)str = emoji.demojize(emoji_str)print(str)# 正常字符转换为分外字符(相称于编码)emoji_str = emoji.emojize(str)print(emoji_str)
运行结果:
【方法 2】:过滤表情
import redef filter_emoji(desstr, restr=''): # 过滤表情 res = re.compile(u'[\U00010000-\U0010ffff\uD800-\uDBFF\uDC00-\uDFFF]') return res.sub(restr, desstr)# 打印所有字符for i in range(0x0, 0x10ffff): print(filter_emoji(chr(i)), end=", ") if i % 16 == 15: print()