#python-3.x #unicode #utf-8 #base64 #decode
#python-3.x #unicode #utf-8 #base64 #декодировать
Вопрос:
Я нашел много вопросов, связанных с этим вопросом в stackoverflow, и даже следил и применял то, что решало проблемы для других пользователей. Я все еще на начальной строке.
Я получаю ответ в формате в кодировке UTF-8. Это XML-файл, который я хочу декодировать. Я сохранил ответ в файле .txt, сохраненном в кодировке UTF-8, и попытался выполнить следующее :
import base64
with open('docdata.txt', 'r') as f:
e = f.read()
print(e[:50])
decoded = base64.b64decode(e)
print(str(decoded, "utf-8"))
Когда я запускаю вышеуказанную программу, я получаю эту ошибку:
print(str(decoded, "utf-8"))
UnicodeDecodeError: 'utf-8' codec can't decode bytes in position 47-48: invalid continuation byte
Размер файла составляет около 26 МБ. Когда я попытался загрузить тот же файл в Base64decode, я получаю правильный выходной файл без каких-либо ошибок.
print(decoded[:50])
>> b'PKx03x04x14x00x08x08x08x005O=Qx00x00x00x00x00x00x00x00x00x00x00x00x11x00x00x00newUserPkList.xmlxecxbdxcb'
print(decoded[47:50]
>> b'xecxbdxcb'
Пожалуйста, дайте мне знать, какую ошибку я делаю, и как я могу решить эту ошибку?
Спасибо.
Комментарии:
1. Файл не является текстовым файлом в кодировке UTF-8.
PK
указывает . ZIP-файл.2. полученный мной ответ должен ли я сохранить его как .zip, а затем разархивировать его с помощью модуля unzip, а затем продолжить декодирование utf-8?
3. Заголовки ответа, вероятно, указывают на ход действий.