将字节转换为str python2.7
我有一本字典将字节转换为str python2.7,python,python-2.7,decode,python-unicode,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']转换为“Mi
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” 数据被编码为UTF-16。解码它:
print k['Creator'].decode('utf16')
这将产生一个unicode
值;您的控制台可能无法处理包含的非ASCII>
码点
演示:
数据被编码为UTF-16。解码它:
print k['Creator'].decode('utf16')
这将产生一个unicode
值;您的控制台可能无法处理包含的非ASCII>
码点
演示:
这将提供所需的字符串 代码:
>>> print(k['Creator'].decode('utf16','ignore')).encode('utf-8')
Microsoft® Office Word 2007
>>> type((k['Creator'].decode('utf16','ignore')).encode('utf-8'))
<type 'str'>
打印(k['Creator'].decode('utf16','ignore')).encode('utf-8'))
Microsoft®Office Word 2007
>>>类型((k['Creator'].decode('utf16','ignore')).encode('utf-8'))
这将提供所需的字符串 代码:
>>> print(k['Creator'].decode('utf16','ignore')).encode('utf-8')
Microsoft® Office Word 2007
>>> type((k['Creator'].decode('utf16','ignore')).encode('utf-8'))
<type 'str'>
打印(k['Creator'].decode('utf16','ignore')).encode('utf-8'))
Microsoft®Office Word 2007
>>>类型((k['Creator'].decode('utf16','ignore')).encode('utf-8'))
输出是::u'Microsoft\xae Office Word 2007'。它是unicode类型而不是字符串。@prateek:是的,这就是重点。解码后,您有一个
unicode
对象。您可以将其再次编码为不同的编码,但这取决于您将如何处理该值。@Martin谢谢您的帮助,但我想将字节数据转换为字符串,我找到了下面发布的代码。输出为::u'Microsoft\xae Office Word 2007。它是unicode类型,而不是字符串。@Pratek:是的,这就是重点。解码后,您有一个unicode
对象。您可以将其再次编码为不同的编码,但这取决于您将如何处理该值。@Martin谢谢您的帮助,但我想将字节中的数据转换为字符串,我找到了下面发布的代码