Проблема с кодировкой при парсинге сообщения твич
Есть переменная message в нее парсится сообщение и получается, что то по типу \xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82 И как это можно перевести в нормальную строку? ps: нужно чтобы именно переменная message потом станвоилась нормальной строкой с правильной кодировкой (сообщение берется с чата твича, если это как то делу поможет)
Ответы (1 шт):
Если это имеет тип bites то можно просто применить метод decode
b'\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'.decode('utf-8')
эта строка даст "привет".
Если у вас строка с escape-последовательностью, т.е.:
b = '\\xd0\\xbf\\xd1\\x80\\xd0\\xb8\\xd0\\xb2\\xd0\\xb5\\xd1\\x82'
то можно такой способ применить:
b.encode('latin1').decode('unicode-escape').encode('latin1').decode('utf-8')
вызовы encode нужны потому что они возвращают байты, у которых есть методы decode
Ну и последний случай, если у вас вдруг так задана переменная:
a = '\xd0\xbf\xd1\x80\xd0\xb8\xd0\xb2\xd0\xb5\xd1\x82'
То декодировать её можно так:
a.encode('latin1').decode('utf-8')