将byte转换为str python2.7

时间:2015-02-15 18:44:10

标签: python python-2.7 decode python-unicode

我有一本字典

k ={'Creator': '\xfe\xff\x00M\x00i\x00c\x00r\x00o\x00s\x00o\x00f\x00t\x00\xae\x00 \x00O\x00f\x00f\x00i\x00c\x00e\x00 \x00W\x00o\x00r\x00d\x00 \x002\x000\x000\x007'}

包含pdf的元数据。在pdf属性中,创建者是Microsoft Office Word 2007.我无法将k['Creator']转换为“Microsoft Office Word 2007”,就像在这种情况下一样。

2 个答案:

答案 0 :(得分:3)

数据编码为UTF-16。解码它:

print k['Creator'].decode('utf16')

这会产生unicode值;您的控制台可能会或可能不会处理包含。

的非ASCII ®代码点

演示:

>>> k ={'Creator': '\xfe\xff\x00M\x00i\x00c\x00r\x00o\x00s\x00o\x00f\x00t\x00\xae\x00 \x00O\x00f\x00f\x00i\x00c\x00e\x00 \x00W\x00o\x00r\x00d\x00 \x002\x000\x000\x007'}
>>> print k['Creator'].decode('utf16')
Microsoft® Office Word 2007

答案 1 :(得分:1)

这会提供所需的字符串。

代码:

>>> print(k['Creator'].decode('utf16','ignore')).encode('utf-8') 
Microsoft® Office Word 2007 
>>> type((k['Creator'].decode('utf16','ignore')).encode('utf-8')) 
<type 'str'>