>  기사  >  백엔드 개발  >  Python에서 파일을 읽을 때 \"UnicodeDecodeError: \'utf-8\' 코덱이 바이트 0xff...\를 디코딩할 수 없습니다."라는 메시지가 나타나는 이유는 무엇입니까?

Python에서 파일을 읽을 때 \"UnicodeDecodeError: \'utf-8\' 코덱이 바이트 0xff...\를 디코딩할 수 없습니다."라는 메시지가 나타나는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-11-04 07:34:02441검색

Why am I getting

"오류 UnicodeDecodeError: 'utf-8' 코덱이 위치 0의 바이트 0xff를 디코딩할 수 없습니다: 잘못된 시작 바이트"를 해결하는 방법?

Python에서 이 오류는 utf-8 인코딩을 사용하여 바이트 배열 데이터를 유니코드 문자열로 변환하려고 시도할 때 발생할 수 있지만 바이트 시퀀스는 utf-8 규칙에 따라 유효하지 않습니다.

근본 원인 이 경우 Python은 읽기 작업 중에 파일 내용을 utf-8로 인코딩된 문자열로 해석합니다. 그러나 파일에는 utf-8의 유효한 시작 바이트가 아닌 바이트 시퀀스(예: 0xff)와 같은 utf-8이 아닌 문자가 포함될 수 있습니다.

이 오류를 해결하려면 다음의 특성을 고려하십시오. 파일을 다운로드하고 다음 솔루션을 적용하세요.

해결책:

파일이 바이너리 파일일 가능성이 높으므로 바이너리 파일로 취급해야 합니다. 아래와 같이 'rb'를 열기 모드로 사용하도록 파일 읽기 코드를 수정합니다.

<code class="python">with open(path, 'rb') as f:
  contents = f.read()</code>

'rb'를 지정하면 파일이 바이너리 모드로 열리고 바이트가 아닌 바이트로 보존됩니다. 이를 utf-8로 인코딩된 문자로 해석합니다. 이렇게 하면 Python이 잘못된 바이트 시퀀스를 디코딩하려고 시도하는 것을 방지하고 예외를 피할 수 있습니다.

위 내용은 Python에서 파일을 읽을 때 \"UnicodeDecodeError: \'utf-8\' 코덱이 바이트 0xff...\를 디코딩할 수 없습니다."라는 메시지가 나타나는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.