我正在尝试从MySQL检索一些数据,但我在读取数据时遇到了问题。列数据类型为varchar,带有utf8_general-ci。我尝试解码但它不起作用。所以,我想删除那些非utf8字符,因为我不需要那些非utf8字符。
#This is the line causing the problem:
line: ((123, 'Classical Musicï¼\x8c', 69),)
conn = db.cursor()
conn.execute(sql)
data = conn.fetchall()
for line in data:
for x in line:
print(x)
收到错误代码
UnicodeEncodeError: 'charmap' codec can't encode character '\x8c' in position 17
我尝试过解码('utf-8'),但我收到了另一个错误。
conn = db.cursor()
conn.execute(sql)
data = conn.fetchall()
for line in data:
for x in line:
print(x[1].decode('utf-8'))
AttributeError: 'str' object has no attribute 'decode'
答案 0 :(得分:0)
Mojibake和双重编码,加上Python的修改。
重新开始。 make everything utf8 - text,connections,CHARACTER SET
,html header。
如果你还有问题,请回来;希望你的代码足够接近,以便我们开出治疗方案。
同时,阅读更多这里的线程;更简单的混乱版本比比皆是。
C3AF C2BB C2BF
被认为是一个花哨的逗号,对吗? utf8十六进制应该是EFBC8C
。用逗号生成什么进程?