将\ x转义字符串转换为UTF-8

时间:2013-08-08 06:44:45

标签: python perl unicode

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

2 个答案:

答案 0 :(得分:11)

在python 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')
'привет'

答案 1 :(得分:0)

对于文件阅读,您可以使用此代替open()

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

f将被重新编码。