我有一个包含
的文件 foo = "Gro\xdfbritannien"
我正在使用以下内容,但它始终使用\ x
显示原始文本 import codecs
f = codecs.open('myfile', 'r', 'utf8')
for line in f:
print line
print line.encode('utf-8')
print line.decode('utf-8')
我无法看到如何显示正确的编码文本,就像我正在做的那样
>>> print u'Gro\xdfbritannien'
Großbritannien
任何提示都将不胜感激!
答案 0 :(得分:4)
当您的文件包含
行时foo = "Gro\xdfbritannien"
它包含一个实际的反斜杠字符,后跟x
,d
和f
。因此,如果将该行读入Python字符串,则将其读作
'foo = "Gro\\xdfbritannien"'
(因为这些都是ASCII字符,如果用utf-8
编解码器打开它并不重要。)
所以你需要先使用string_escape
编解码器解码它:
>>> foo.decode("string_escape")
'Gro\xdfbritannien'
和然后将其解码为正确的Unicode对象
>>> _.decode("latin1")
u'Gro\xdfbritannien'
然后你可以打印
>>> print _
Großbritannien
答案 1 :(得分:-1)
没有编解码器业务。 你应该这样做'foo =“Gro \ xdfbritannien”'
>>> print u'Gro\\xdfbritannien'
Gro\xdfbritannien