前提背景:
通过接口获取到的数据,要存入数据库,由于数据库的编码问题,一些特殊字符出现错误,无法进入数据库
解决办法:
过滤掉这些特殊字符,包含emoji表情等各种特殊字符
剔除除中英文及数字外的其他任何字符
impoer re
def filter_str(desstr,restr=''):
#过滤除中英文及数字以外的其他字符
res = re.compile("[^\u4e00-\u9fa5^a-z^A-Z^0-9]")
return res.sub(restr, desstr)
emoji表情库
【方法1】:
emoji处理库,emoji官网:https://pypi.org/project/emoji/
#安装
pip install emoji
# 清除命令
emoji.demojize(str)
import re
def filter_emoji(desstr,restr=''):
#过滤表情
try:
res= re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
res = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
return res.sub(restr, desstr)
# 打印所有字符
for i in range(0x0,0x10ffff):
print(chr(i),end=" ")
if i%16==15:
print()