python unicode编码/解码函数的异常(为什么不错误=忽略实际忽略它们?)

gat*_*ado 5 python unicode

有人知道为什么字符串转换函数会在错误="忽略"传递时抛出异常吗?如何在不抛出错误的情况下将常规Python字符串对象转换为unicode?非常感谢!

python -c "import codecs; codecs.open('tmp', 'wb', encoding='utf8', errors='ignore').write('?????')"
Run Code Online (Sandbox Code Playgroud)

返回
Traceback(最近一次调用last):
文件"",第1行,在
文件"/usr/lib/python2.6/codecs.py",第686行,写入
返回self.writer.write(data)
文件"/ usr/lib/python2.6/codecs.py",第351行,写入
数据,消耗= self.encode(object,self.errors)
UnicodeDecodeError:'ascii'编解码器无法解码位置0中的字节0xd0:序数不是在范围内(128)

编辑 - 感谢您的回复,但有没有人知道如何转换上面的文字,而不是使用"u"前缀?原因是你当然可以处理一些不是常数的东西:)

abe*_*rry 3

在Python 2.x中使用write('\xd0\xba\xd0\xbe\xd1\x88\xd0\xba\xd0\xb0'.decode('utf-8')而不是write('\xd0\xba\xd0 \xbe\xd1\x88\xd0\xba\xd0\xb0')

\n\n

您也可以使用其他编码来代替“utf-8”。

\n\n

希望它不会抛出任何错误......

\n