处理Unicode是我用Python编程的唯一挑战,我在过去的项目中遇到了很多问题,而且我总是粗暴地试图测试不同的编码,直到某些东西有效(如果有任何初学者的教程,它会非常方便)
例如我有这段代码:
# -*- coding: utf-8 -*-
string = "Åland Islands"
with open("1.txt","w")as f:
f.write(string.decode("utf-8"))
返回:
return codecs.utf_8_decode(input, errors, True)
UnicodeDecodeError:' utf8'编解码器不能解码位置0中的字节0xc5:无效的连续字节
我测试了很多编码来解决这个问题而没有运气。
答案 0 :(得分:2)
编码行只是告诉Python解释器它应该如何解释字节。这并不意味着脚本实际上包含 UTF-8编码的文本。实际上,错误消息表明该文件已保存为ISO-8859编码(Latin-1)文本。 0xc5是Å的Latin-1编码; 0xc3 0x85是UTF-8编码。
您需要确保您的编辑器实际上将文件保存为UTF-8编码文本,以便编码行不会对解释器说谎。