2014-05-16 42 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