2017-08-08 111 views
1

任何人都知道我如何解码我的Python版本3.6.0的十六进制值?Python UnicodeDecodeError:'utf-8'编解码器无法解码位置2中的字节0x8c:无效起始字节

我使用x.decode(“hex”),但自从python更新它不再工作。

这里是我的十六进制值:

01008C647620302E31302E372070762039393130333120736E20333137337C6661336232653863206D7A20313778313720736B6620343235357C34376330643162302073706620333237397C363236373361376520627066203332363137307C61653138366364642073746620323538397C623634383035633220616D66203335333230357C633736333133626200

回答

2

在Python 3.6,无需解码(的str类型)的字符串,因为它们已经UTF-8。此外,正常的decode函数只允许“标准”字符串解码。也就是说,这个函数不能解码十六进制。

相反,这种“特殊”解码功能移到codecs.decode。因此,你想重写你的代码:

import codecs 
x = "01008C647620302E31302E372070762039393130333120736E20333137337C6661336232653863206D7A20313778313720736B6620343235357C34376330643162302073706620333237397C363236373361376520627066203332363137307C61653138366364642073746620323538397C623634383035633220616D66203335333230357C633736333133626200" 
codecs.decode(x, 'hex') 
+0

谢谢队友:-) –

相关问题