mysql 4字符插入报错,如果4字符我们不需要可以过滤掉
def clean(desstr,restr=''):
#过滤表情
try:
co = re.compile(u'['u'\U0001F300-\U0001F64F' u'\U0001F680-\U0001F6FF'u'\u2600-\u2B55]+')
except re.error:
co = re.compile(u'('u'\ud83c[\udf00-\udfff]|'u'\ud83d[\udc00-\ude4f\ude80-\udeff]|'u'[\u2600-\u2B55])+')
return co.sub(restr, desstr)
print(clean('shanghai🙌🏻💗🚩'))
运行结果:
shanghai
代码中的正则编码解释如下:
<U+1F300> - <U+1F5FF> # 符号和象形字
<U+1F600> - <U+1F64F> # 表情符号
<U+1F680> - <U+1F6FF> # 交通符号和地图符号
<U+2600> - <U+2B55> # 其它符号
上面那个不可以可以试试下面这个:
def clean(desstr,restr=''):
#过滤表情
try:
# python UCS-4 build的处理方式
co = re.compile(u'[\U00010000-\U0010ffff]')
except re.error:
# python UCS-2 build的处理方式
co = re.compile(u'[\uD800-\uDBFF][\uDC00-\uDFFF]')
return co.sub(restr, desstr)
print(clean('shandong🙌🏻💗🚩'))
运行结果:
shandong