Python源代码编码不起作用

时间:2016-02-11 22:25:03

标签: python string encoding

在我的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?

2 个答案:

答案 0 :(得分:2)

如果我理解,你可以使用:

s.encode('latin-1');

解决您的问题。

示例:

>>> s = u'ééé'.encode('latin1') 
>>> s.decode('latin1')
u'\xe9\xe9\xe9'

Source of the example

如果你能做到,请给我反馈。

答案 1 :(得分:0)

'\xe4\xf6\xfc'

是一个字节字符串,其中包含您指定的3个字节。

至于为什么编码不正确,这取决于编辑器保存文件的方式。您可能希望通过使用hexdump查看源文件来检查是否使用Latin-1保存了它。