2014-05-16 25 views
1

西里尔字符串我有一个字符串像无法解码的python

编码文件
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,它没有工作。 文件-bi说的charset = US-ASCII

应该有西里尔(CP1251)ASTRING实际上

蟒蛇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

“它没有工作” - 发生了什么?你得到了什么结果?疯狂的文字?编码错误?还有别的吗? – user2357112

+0

我得到相同的字符串,它根本不会改变,我甚至不能把它作为以u开头的unicode字符。 – Ivri

+0

这没有道理。告诉我们会发生什么 - 复制粘贴口译笔录给我们看。添加了 – user2357112

回答

2

问题是你说错了b之后,你的w变量中的第3个\x转义出来,当它说无效转义。

>>> w = '\xd7\xe5\xeb\xff\xe1\xe8\xed\xf1\xea' 
>>> w.decode('cp1251') 
u'\u0427\u0435\u043b\u044f\u0431\u0438\u043d\u0441\u043a' 
+1

谢谢!这个作品:print w.decode('cp1251')。encode('utf-8')= >Челябинск – Ivri