8

如何将看起来像'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'Perl 或 Python 可读的字符串转换成字符串?

4

2 回答 2

19

在蟒蛇 2.7

>>> print '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'
привет

>>> print '\\xd0\\xbf\\xd1\\x80\\xd0\\xb8\\xd0\\xb2\\xd0\\xb5\\xd1\\x82'.decode('string-escape')
привет
>>> print r'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'.decode('string-escape')
привет

在 python 3.x 中

>>> br'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'.decode('unicode-escape').encode('latin1').decode('utf-8')
'привет'
于 2013-08-08T06:47:57.287 回答
0

对于文件读取,您可以使用它而不是open()

import codecs
with codecs.open('filename','r','string-escape') as f:
    data=f.read()

data将在f阅读时重新编码。

于 2013-08-08T07:21:32.500 回答