@Sushkov
">alert("yohoho")

Как превести str к нормальному виду в Python 3?

Получаю вот такую строку =?UTF-8?B?UmVsZWFzZS5yYXI=?=, типа str, как превести ее к человеческому виду?
  • Вопрос задан
  • 203 просмотра
Решения вопроса 1
petermzg
@petermzg
Самый лучший программист
Так у вас "UTF-8" это кодировка в которой результат,
"B" это походу указатель на base64,
т.к. "UmVsZWFzZS5yYXI=" это равно "Release.rar" в этой кодировке.
"?" - разделитель
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@abcd0x00
Нужно сначала разделить на пары, а потом в цикле склеивать.
>>> import email.header
>>> 
>>> s = "=?UTF-8?B?UmVsZWFzZS5yYXI=?="
>>> 
>>> email.header.decode_header(s)
[(b'Release.rar', 'utf-8')]
>>>


В одной строке может быть несколько разных частей в разных кодировках (бывают и неизвестные кодировки). Так что нужно писать отдельную функцию, которая учитывает любые варианты.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы