我正在使用Python 3.7。如何从字符串中删除所有非UTF-8字符?我尝试在下面使用“ lambda x:x.decode('utf-8','ignore')。encode(“ utf-8”)“
coop_types = map(
lambda x: x.decode('utf-8','ignore').encode("utf-8"),
filter(None, set(d['type'] for d in input_file))
)
但这导致错误...
Traceback (most recent call last):
File "scripts/parse_coop_csv.py", line 30, in <module>
for coop_type in coop_types:
File "scripts/parse_coop_csv.py", line 25, in <lambda>
lambda x: x.decode('utf-8','ignore').encode("utf-8"),
AttributeError: 'str' object has no attribute 'decode'
如果您有一种通用的方式可以从字符串中删除所有非UTF8字符,那就是我想要的。
您从一个字符串开始。你不能decode
一str
(它已经解码的文字,你只能再次编码成二进制数据)。UTF-8几乎对任何有效的Unicode文本(str
存储的内容)进行编码,因此不会太多,但是如果您在输入中遇到替代字符,则可以反转方向,更改:
x.decode('utf-8','ignore').encode("utf-8")
至:
x.encode('utf-8','ignore').decode("utf-8")
在其中编码任何UTF-8可编码的东西,丢弃不可编码的东西,然后解码现在干净的UTF-8字节。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句