Python字符串编码
我有这个密码Python字符串编码,python,string,encode,python-2.x,Python,String,Encode,Python 2.x,我有这个密码 att=att.replace("à","a") 但是我收到了这个错误 att=att.replace("à","a") UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128) 如何修复?不要将unicode与字节字符串混合使用。 Python2执行隐式转换,但Python3不执行。即使您没有使用Python3,最好避免将两者混合使用
att=att.replace("à","a")
但是我收到了这个错误
att=att.replace("à","a")
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
如何修复?不要将unicode与字节字符串混合使用。 Python2执行隐式转换,但Python3不执行。即使您没有使用Python3,最好避免将两者混合使用 在Python2中,如果
att
是unicode,那么
att.replace("à","a")
在试图替换att
中的“a”
之前,将隐式尝试将“a”和“a”解码为unicode。
Python2使用ascii
(默认情况下)执行隐式解码
“a”.decode('ascii')
引发UnicodeDecodeError:'ascii'编解码器无法解码位置0:序号不在范围(128)内的字节0xc3
要修复此错误,由于att
是unicode
,att.replace
的参数也应该是unicode:
att.replace(u"à",u"a")
你可以破译它们att=att.decode('utf-8')。替换(“a”)。decode('utf-8'),“a”)