繁体   English   中英

在Python 3.4中从字符串中删除非utf-8字符

[英]Remove non utf-8 characters from string in Python 3.4

我正在尝试从MySQL检索一些数据,但是在读取数据时遇到问题。 列数据类型是带有utf8_general-ci的varchar。 我尝试对其进行解码,但是它不起作用。 因此,我想删除那些非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'

Mojibake和双重编码,再加上Python的处理。

重来。 使所有内容变为utf8-文本,连接, CHARACTER SET ,html标头。

如果仍然有问题,请回来; 希望您的代码足够接近,可以更正我们开出的解决方案。

同时,在这里阅读更多线程。 混乱的简单版本比比皆是。

C3AF C2BB C2BF应该是花哨的逗号,对吗? utf8十六进制应为EFBC8C 逗号产生了什么过程?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM