UnicodeDecodeError. Невозможно расшифровать текстPython

Программы на Python
Anonymous
UnicodeDecodeError. Невозможно расшифровать текст

Сообщение Anonymous »

Я получаю электронные письма с помощью API Gmail. Мне нужно закодировать текст из тела. Язык письма — украинский.
фрагмент моего кода:

Код: Выделить всё

def search_messages(service, query):
result = service.users().messages().list(userId='me', q=query).execute()
for msg in result['messages']:
msgId = msg['id']
msg = service.users().messages().get(userId='me', id=msgId, format='full').execute()

body_data = msg['payload']['parts'][0]['body']['data']
content = base64.b64decode(body_data).decode('utf-8')
print(content)
даже Шарде не может найти правильный тип кодировки:

Код: Выделить всё

decoded_data = base64.b64decode(body_data)
result = chardet.detect(decoded_data)
encoding = result['encoding']
> None
Все, что я получил, это такие ошибки:
  • с utf-8: ' Кодек utf-8' не может декодировать байт 0xb4 в позиции 34: неверный начальный байт
  • с Windows-1251: кодек 'charmap' может не декодирую байт 0x98 в позиции 73: символы отображаются в
Я также пробовал другие методы кодирования, такие как CP866, koi8-u (koi8-r), iso-8859-1. С их помощью я получаю случайные символы для кириллических символов.
С другой стороны, веб-сайты для декодирования, такие как base64decode, показывают обычный текст с помощью utf-8

Подробнее здесь: https://stackoverflow.com/questions/786 ... e-the-text

Вернуться в «Python»