在处理ISO-8859-1/Latin-1字符集时,我在Python中面临一个巨大的编码问题。
当使用os.listdir
获取文件夹的内容时,我得到的字符串编码为ISO-8859-1(例如:“Ol\xe1 Mundo”),但是在Python解释器中,相同的字符串编码为不同的字符集:
In : 'Olá Mundo'.decode('latin-1')
Out: u'Ol\xa0 Mundo'
如何强制Python将字符串解码为相同的格式?。我看到os.listdir
返回正确编码的字符串,但解释器不是(“&”字符对应于ISO-8859-1中的“\xe1”,而不是“\xa0”):
http://en.wikipedia.org/wiki/ISO/IEC_8859-1
有什么想法可以克服吗?
当您在python2交互会话中输入非unicode字符串文本时,将假定该文本为系统默认编码。
似乎您正在使用windows,因此默认编码可能是“cp850”或“cp437”:
如果将代码页更改为1252(大致相当于latin1),字符串将按预期显示:
相关问题 更多 >
编程相关推荐