Solução de problemas de UnicodeDecodeError na decodificação UTF-8 do Python
Encontrando o erro "UnicodeDecodeError: o codec 'utf-8' não pode decodificar o byte 0xff na posição 0: byte inicial inválido" significa que o Python está tentando decodificar uma sequência de bytes usando UTF-8, mas encontra um byte inicial inválido. Isso ocorre quando uma matriz de bytes, considerada uma string codificada em UTF-8, contém caracteres fora da codificação UTF-8規範。
Causa do erro
No exemplo fornecido, abrir um arquivo usando open(path).read() aciona a tentativa de decodificação. Como o arquivo contém bytes que não estão em conformidade com UTF-8, o processo de decodificação falha, resultando no erro.
Solução
Para resolver esse problema, é imperativo manipular o arquivo como um binário em vez de um arquivo de texto. Isso evita que o Python tente decodificar os bytes como uma string UTF-8.
Ao modificar o código para abrir o arquivo com o modo 'rb', forçamos o Python a ler o arquivo como um binário:
with open(path, 'rb') as f:
contents = f.read()
Especificar o 'b' no argumento mode instrui o Python a tratar o arquivo como um fluxo binário, garantindo que o conteúdo permaneça um objeto bytes, sem qualquer tentativa de decodificação.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3