我的Python代码中存在编码问题。我尝试了不同的方法,但我没有让它发挥作用。
值是ä
with open("result.txt", "a") as myfile:
myfile.write(value.encode('utf-8'))
错误是: UnicodeDecodeError:'ascii'编解码器无法解码位置0的字节0xc3:序数不在范围内(128)
答案 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编码而ä不属于那个。