Как из hex представления числа перевести обратно в тест по таблице ascii?
Не могу понять, как мне перевести сообщение c обратно в текстовый формат. Я понимаю что для этого необходимо использовать метод decode, но проблема в том, что я не понимаю как применить её правильно. В общем, я понятия не имею как из [208, 191, 209, 128, 208, 184, 208, 178, 208, 181, 209, 130] сделать "привет". Подскажите, как это можно сделать ? Возможно есть другой способ перевести текст в ascii код и обратно ? (Мне в любом случаи необходимо шестнадцатеричное представление символа.)
a = "привет"
b = a.encode("utf-8")
print(b) # b'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'
c = list(b)
print(c) # [208, 191, 209, 128, 208, 184, 208, 178, 208, 181, 209, 130]
v = [hex(n)[1:] for n in c]
print(v) # ['xd0', 'xbf', 'xd1', 'x80', 'xd0', 'xb8', 'xd0', 'xb2', 'xd0', 'xb5', 'xd1', 'x82']
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
print(bytes(c).decode('utf-8'))
Вывод:
привет
Если из последнего варианта нужно переводить (16-ричного), то можно обратно 10-чные числа получить так:
c = [int(i[1:],16) for i in v]