Как исправить binascii.Error: не удалось декодировать с помощью шестнадцатеричного кодека (ошибка: найдена не шестнадцатеричная цифра) - PullRequest
0 голосов
/ 22 октября 2019

Я пытаюсь использовать codecs.decode для декодирования из hex в utf - 8. Я получаю сообщение об ошибке, что в моей строке есть не шестнадцатеричная цифра, хотя я не могу найти ничего подобного, и она успешно декодируется всайты, подобные этому: https://onlineutf8tools.com/convert-hexadecimal-to-utf8

Я пробовал использовать разные методы, такие как bytes.fromhex (), но получаю ту же ошибку.


import codecs

hexString = "0x35303839372c312c333733002c003130003a3930"
utf = codecs.decode(hexString, "hex").decode('utf-8')

Это ожидаемый результат: 50897,1,373,10: 90

Я получаю ошибку:

binascii.Error: не удалось декодировать с помощью шестнадцатеричного кодека (ошибка: найдена не шестнадцатеричная цифра)

1 Ответ

0 голосов
/ 22 октября 2019

Вам необходимо удалить префикс 0x:

import codecs
hexString = "0x35303839372c312c333733002c003130003a3930"[2:]
utf = codecs.decode(hexString, "hex").decode('utf-8')
...