디코딩 오류: "UnicodeDecodeError, 잘못된 연속 바이트"
UTF-8을 사용하여 ASCII가 아닌 문자가 포함된 문자열을 디코딩하려고 할 때 코덱을 사용하는 경우 "UnicodeDecodeError: 잘못된 연속 바이트" 오류가 발생할 수 있습니다. 이 오류는 문자열에 유효한 UTF-8 연속 바이트가 아닌 바이트 시퀀스가 포함되어 있음을 나타냅니다.
제공된 특정 예에서:
o = "a test of \xe9 char" v = o.decode("utf-8")
문자열 o에는 비ASCII 문자 xe9(é). UTF-8 코덱을 사용하여 디코딩하려고 하면 xe9가 잘못된 UTF-8 연속 바이트이기 때문에 앞서 언급한 오류와 함께 실패합니다.
해결책
해결책 문자열에서 ASCII가 아닌 문자를 처리할 수 있는 다른 코덱을 사용하는 것입니다. 이 경우 é:
v = o.decode("latin-1")
설명
과 같은 악센트 문자를 포함하여 서유럽 문자를 처리하도록 설계된 latin-1 코덱을 사용할 수 있습니다. latin-1 코덱은 영어 알파벳 문자, 악센트 문자 및 일부 구두점을 포함하여 256자를 포함하는 단일 바이트 문자 집합입니다. 일반적으로 서유럽 언어로 텍스트를 인코딩하는 데 사용됩니다.
latin-1 코덱을 사용하면 "UnicodeDecodeError" 예외가 발생하지 않고 문자열 o를 성공적으로 디코딩할 수 있습니다.
위 내용은 ASCII가 아닌 문자로 문자열을 디코딩하면 \'UnicodeDecodeError: 잘못된 연속 바이트\'가 발생하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!