【python】过滤特殊字符(emoji)

前提背景:
通过接口获取到的数据,要存入数据库,由于数据库的编码问题,一些特殊字符出现错误,无法进入数据库

解决办法:
过滤掉这些特殊字符,包含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)

【方法2】:

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()
  • 1
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值