1

我很难理解编码是如何工作的:

为什么python代码中的字符串可以编码:

s = 'Au\xc3\x9fenformat\n'
print s.encode('utf-8')
>>>Außenformnat

但是,如果我从文本文件中读取这样的字符串,我会得到:

f = open('out.txt', 'r')
data = f.read()
print data.encode('utf-8')
>>>Au\xc3\x9fenformat\n

有什么建议么?

4

2 回答 2

3

试试这个,你应该会看到正确打印的文件内容:

f = open('out.txt', 'r')
data = f.read()
print data.decode('string_escape')

这是因为文件中 txt 中的反斜杠被转义了:

>>> open('out.txt').read()
'Au\\xc3\\x9fenformat\\n\n'
于 2013-04-22T16:43:12.150 回答
0
>>> f = open('out.txt', 'r')
>>> data= f.read()
>>> print data.decode("string_escape")
ußenformat
于 2013-04-22T16:45:09.653 回答