我真的很困惑。我试图编码,但错误是无法解码…
>&燃气轮机&燃气轮机;"你好".编码(“utf8”)
回溯(最近一次呼叫最后一次):
文件“<;stdin>;“,第1行,在<;模块>;
UnicodeDecodeError:“ascii”编解码器无法解码位置0中的字节0xe4:序号不在范围内(128)
我知道如何避免字符串上带有“u”前缀的错误。我只是想知道为什么调用encode时会出现“无法解码”的错误。Python在幕后做什么
”你好“.encode('utf-8')
encode将unicode对象转换为string对象。但是这里您在string对象上调用了它(因为您没有u)。因此python必须首先将string转换为unicode对象。因此它执行了与
”你好“.decode().encode('utf-8')
但是解码失败,因为字符串不是有效的ascii码。这就是为什么你会收到无法解码的投诉