无法在python中解码西里尔字符串

2024-06-28 15:34:42 发布

您现在位置: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,但没用。

file -bi说charset=us ascii

实际上西里尔文(cp1251)中应该有一个字符串

Python2.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等等,但是没有改变。每次我得到相同的字节集。


Tags: 字符串编码adminunicode解码utfxexff
1条回答
网友
1楼 · 发布于 2024-06-28 15:34:42

问题是,当第三个\x转义符在w变量中显示无效转义符时,您缺少b

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

相关问题 更多 >