无法使用python解码此字符串

时间:2018-05-07 10:28:01

标签: python python-2.7

我有这个text.ucs文件,我试图用python解码。

file = open('text.ucs', 'r')
content = file.read()
print content

我的结果是

\ XF \ XE \ X002 \ 22

我尝试用utf-16,utf-8

进行解码
content.decode('utf-16')

并收到错误

  

Traceback(最近一次调用最后一次):文件“”,第1行,in      文件“C:\ Python27 \ lib \ encodings \ utf_16.py”,第16行,in   解码       返回codecs.utf_16_decode(输入,错误,True)UnicodeDecodeError:'utf16'编解码器无法解码位置中的字节   32-33:非法编码

如果我遗漏任何内容或我的方法有误,请告诉我

编辑:已询问屏幕截图 enter image description here

4 个答案:

答案 0 :(得分:1)

字符串编码为UTF16-BE(Big Endian),这可以:

content.decode("utf-16-be")

答案 1 :(得分:1)

哦,据我所知你使用python 2.xx但编码参数只在python 3.xx中添加,因为我知道,我不是python 2.xx的主人,但你可以在谷歌搜索关于io .open例如试试:

file = io.open('text.usc', 'r',encoding='utf-8')
content = file.read()
print content

但是你是否需要导入io模块

答案 2 :(得分:0)

您可以指定与encoding参数一起使用的编码:

with open('text.ucs', 'r', encoding='utf-16') as f:
    text = f.read()

答案 3 :(得分:0)

你的字符串需要使用编码utf-8解码你可以做我现在做的解码你的字符串

f = open('text.usc', 'r',encoding='utf-8')
print f