在我的Paspberry上,我在Python 2.7下运行Python脚本。
我想将一些字符串文字声明为Latin-1,而不是UTF-8。
因此我添加了声明
# -*- coding: latin-1 -*-
在我的文件开头。但无论使用哪种编码,我都会使用以下代码片段将字符串声明为UTF-8。
s = 'äöü'
print '%s %d' %(s, len(s))
print '%x %x %x %x %x %x' % (ord(s[0]), ord(s[1]), ord(s[2]), ord(s[3]), ord(s[4]), ord(s[5]))
始终告诉我:
äöü 6
c3 a4 c3 b6 c3 bc
使用Latin-1编码声明字符串文字的正确方法是什么,即在我的情况下,我希望有一个包含3个字符的字符串:0xe4,0xf6,0xfc?
答案 0 :(得分:2)
如果我理解,你可以使用:
s.encode('latin-1');
解决您的问题。
示例:
>>> s = u'ééé'.encode('latin1')
>>> s.decode('latin1')
u'\xe9\xe9\xe9'
如果你能做到,请给我反馈。
答案 1 :(得分:0)
'\xe4\xf6\xfc'
是一个字节字符串,其中包含您指定的3个字节。
至于为什么编码不正确,这取决于编辑器保存文件的方式。您可能希望通过使用hexdump查看源文件来检查是否使用Latin-1保存了它。