2017-08-08 112 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

謝謝隊友:-) –

相關問題