首页 文章

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

提问于
浏览
0

我的Python代码中存在编码问题 . 我尝试过不同的方法,但我没有尝试 .

Value 是ä

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

The error is: UnicodeDecodeError:'ascii' codec无法解码位置0的字节0xc3:序数不在范围内(128)

1 回答

  • 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 is encoded to string, string decoded to unicode. 所以在你编写的情况下你编码一个不正确的字符串 . 但python允许它 . 因此它尝试将字符串解码为unicode以便可以进一步编码 . 但肯定会失败,因为解码将默认使用ASCII编码而ä不属于此类 .

相关问题