我有这段代码
att=att.replace("à","a")
但我收到了这个错误...
att=att.replace("à","a")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
我该如何解决?
答案 0 :(得分:3)
不要将unicode与字节字符串混合在一起。 Python2进行隐式转换,但Python3没有。即使您不使用Python3,最好避免混合使用Python3。
在Python2中,如果att
是unicode,那么
att.replace("à","a")
在尝试替换"à"
"a"
之前,将隐式 尝试将解码 "à"
和att
设为unicode 1}}。
Python2使用ascii
(默认情况下)进行隐式解码。
"à".decode('ascii')
提出UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
。
要解决此错误,由于att
为unicode
,att.replace
的参数也应为unicode:
att.replace(u"à",u"a")