我有一个带有
字符串的编码文件b'1' b'\xca\xee\xef\xe5\xe9\xf1\xea' b'1' b'ADMIN' b'2013-07-08 00:21:55'
b'2' b'\xd7\xe5\xeb\xff\xe1\xe8\xed\xf1\xea' b'1' b'ADMIN' b'2013-07-08 00:22:05'
我该如何解码呢?我试图使用编解码器,解码/编码cp1251,它没有用。 file -bi说charset = us-ascii
西里尔文(cp1251)中应该有astring
python 2.7
输出:
>>> w=r'\xd7\xe5\xe\xff\xe1\xe8\xed\xf1\xea'
>>> w='\xd7\xe5\xe\xff\xe1\xe8\xed\xf1\xea'
ValueError: invalid \x escape
>>> w=r'\xd7\xe5\xe\xff\xe1\xe8\xed\xf1\xea'
>>> w.decode('raw_unicode_escape')
u'\\xd7\\xe5\\xe\\xff\\xe1\\xe8\\xed\\xf1\\xea'
>>> w.decode('utf-8')
u'\\xd7\\xe5\\xe\\xff\\xe1\\xe8\\xed\\xf1\\xea'
>>> unicode(w)
u'\\xd7\\xe5\\xe\\xff\\xe1\\xe8\\xed\\xf1\\xea'
>>> unicode(w, 'utf-8')
u'\\xd7\\xe5\\xe\\xff\\xe1\\xe8\\xed\\xf1\\xea'
我做了所有事情:解码(“utf-8”),使用unicode等等,但每次我得到相同的字节集时都没有变化。
答案 0 :(得分:2)
问题是,当b
变量显示无效转义时,您在第\x
次转义后错过了w
。
>>> w = '\xd7\xe5\xeb\xff\xe1\xe8\xed\xf1\xea'
>>> w.decode('cp1251')
u'\u0427\u0435\u043b\u044f\u0431\u0438\u043d\u0441\u043a'