我有这个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:非法编码
如果我遗漏任何内容或我的方法有误,请告诉我
答案 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