Преобразование байтового шестнадцатеричного объекта в строку - PullRequest
0 голосов
/ 27 мая 2020

Я переношу код python 2 на python 3, тогда у меня возникают проблемы с кодированием / декодированием. Сначала у меня есть кратное предложение, которое я должен преобразовать следующим образом:

строка -> строка в шестнадцатеричном формате

Раньше, в python 2 я использовал такой код hex_message = message.encode("hex") , то до миграции работал отлично. Например, input->"Hello world", output ->"48656c6c6f20776f726c64". Тогда у меня такая проблема LookupError: 'hex' is not a text encoding; use codecs.encode() to handle arbitrary codecs. Я изменил выражение на это hex_message = codecs.encode(message, 'hex') и получаю этот результат b"48656c6c6f20776f726c64". Итак, не так много изменений, проблема в том, что у меня есть несколько строк, которые не являются байтовыми объектами, и я должен присоединиться к ним, поэтому я хотел бы кодировать, но не как байтовый объект, а только как строку. Хотелось бы получить их, как прежде, с другой функцией или с дополнительной функцией.

1 Ответ

0 голосов
/ 27 мая 2020

Я нахожу решение:

message = "Hello world".encode('utf-8') затем hex_message = message.hex(). Он работает в python3.

...