Устранение неполадок UnicodeDecodeError при декодировании UTF-8 в Python
Обнаружение ошибки «UnicodeDecodeError: кодек 'utf-8' не может декодировать байт 0xff» в позиции 0: неверный стартовый байт» означает, что Python пытается декодировать последовательность байтов с использованием UTF-8, но обнаруживает недопустимый стартовый байт. Это происходит, когда массив байтов, предположительно являющийся строкой в кодировке UTF-8, содержит символы вне кодировки UTF-8.
Причина ошибки
В приведенном примере открытие файла с помощью open(path).read() запускает попытку декодирования. Поскольку файл содержит байты, не соответствующие UTF-8, процесс декодирования завершается сбоем, что приводит к ошибке.
Решение
Чтобы решить эту проблему, необходимо обязательно обрабатывать файл как двоичный, а не текстовый файл. Это предотвращает попытки Python декодировать байты как строку UTF-8.
Изменяя код для открытия файла в режиме «rb», мы заставляем Python читать файл как двоичный:
with open(path, 'rb') as f:
contents = f.read()
Указание 'b' в аргументе режима указывает Python обрабатывать файл как двоичный поток, гарантируя, что содержимое остается байтовым объектом без каких-либо попыток декодирования.
Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3