Python 源代码编码不起作用



在我的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 保存。

相关内容

最新更新