爬虫时遇到不可见字符时无法导入数据库中,报错 mysql.connector.errors.DatabaseError: 1267 (HY000): Illegal mix of collations (gbk_chinese_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='

遇到的不可见字符有:

\u200b
\ufeff
\ue601

还有其他不可见字符,可用 repr(s) 显示其原本的样子

s = chr(8204) + chr(8205)
print(s)
print(repr(s))  # '\u200c\u200d'

利用 str.isprintable() ,如果字符串中所有字符均为可打印字符或空字符串则返回 True ,否则返回 False

print(''.isprintable())  # True
print('A'.isprintable())  # True
print('A\u2029'.isprintable())  # False

移除所有不可见字符

def remove_upprintable_chars(s):
    """移除所有不可见字符"""
    return ''.join(x for x in s if x.isprintable())
s = 'A\u2029B'
print(s.isprintable(), s)  # False
s = remove_upprintable_chars(s)
print(s.isprintable(), s)  # True

备选方案如下:

  • 将字符集改为 utf8
  • 读取编码改为 utf-8-sig
  • 直接替换掉
s = s.replace('\u200b', '')

另外,参考文献通过该方法去除控制字符,本人测试无效

import re
import itertools
def remove_control_chars(s):
    control_chars = ''.join(map(chr, itertools.chain(range(0x00, 0x20), range(0x7f, 0xa0))))
    control_char_re = re.compile('[%s]' % re.escape(control_chars))
    return control_char_re.sub('', s)
  1. python - SimpleJSON encoding issue: Illegal character
  2. python 去除不可见的控制字符
  3. Stripping non printable characters from a string in python
  4. unicodedata — Unicode 数据库
  5. Python批量替换字符串内容
  6. mysql字符集错误ERROR 1267 (HY000)解决方法
  7. 去除 \ufeff
  8. 如何移除所有不可见字符?
  9. str.isprintable() — Python文档
一、a=u'3082986\u202c' ,执行 print(a)输出3082986‬,不会输出‘\u202c’,若要输出不可见字符,则执行 print(repr(a)) 二、去除不可见字符 python 2 : a.strip(u'\u202c') python 3 : a.strip('\u202c')
// 去除excel粘贴自动加上的空万国码“\U202d” "\U202c" StringBuilder currentMobile = new StringBuilder(); if (mobiles.length() > 12) { for (int i = 0; i < mobiles.length(); i++) { if (mobiles.charAt(i) >= 48 && mobiles.charAt(i) <= 57) { currentM
【项目介绍】 毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip 毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip 毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip毕业项目基于STM32实现人体健康监测装置源码及完整资料(可测温度、心率等).zip 1.项目代码均经过功能验证ok,确保稳定可靠运行。欢迎下载食用体验! 2.主要针对各个计算机相关专业,包括计算机科学、信息安全、数据科学与大数据技术、人工智能、通信、物联网等领域的在校学生、专业教师、企业员工。 3.项目具有丰富的拓展空间,不仅可作为入门进阶,也可直接作为毕设、课程设计、大作业、初期项目立项演示等用途。 4.当然也鼓励大家基于此进行二次开发。在使用过程,如有问题或建议,请及时沟通。 5.期待你能在项目找到乐趣和灵感,也欢迎你的分享和反馈!