编码问题 - 'ascii'编解码器无法解码字节0xc3

时间:2017-06-05 07:40:18

标签: python python-unicode

我的Python代码中存在编码问题。我尝试了不同的方法,但我没有让它发挥作用。

值是ä

with open("result.txt", "a") as myfile:
    myfile.write(value.encode('utf-8'))

错误是: UnicodeDecodeError:'ascii'编解码器无法解码位置0的字节0xc3:序数不在范围内(128)

1 个答案:

答案 0 :(得分:0)

您可以尝试编解码器模块,它专门为此而设计。 我也希望值是unicode而不是字符串。如果它是一个unicode。

import codecs
value = u'ä'
with codecs.open("result.txt", "a", encoding="utf-8") as f:
    f.write(value)

这应该这样做。

但是看看错误unicode解码,你的值似乎是字符串。 如果是一个字符串

f.write(value.decode("utf-8"))

始终记住 unicode被编码为字符串,字符串被解码为unicode。 所以在你编写的情况下,编码一个不正确的字符串。 但python允许它。因此它尝试将字符串解码为unicode,以便可以进一步编码。但肯定会失败,因为解码将默认使用ASCII编码而ä不属于那个。