在我的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?
如果我明白,你可以使用:
s.encode('latin-1');
为了你的问题。
例:
>>> s = u'ééé'.encode('latin1')
>>> s.decode('latin1')
u'xe9xe9xe9'
示例的来源。
如果你能做到,给我反馈。
'xe4xf6xfc'
是具有您指定的 3 个字节的字节字符串。
至于为什么它没有正确编码,这取决于编辑器保存文件的方式。 您可能希望通过使用十六进制转储查看源文件来检查它是否使用 Latin-1 保存。