TypeError 수정: Python에서 유니코드 디코딩이 지원되지 않음

Zeeshan Afridi 2023년6월21일
  1. Python의 TypeError: 유니코드 디코딩이 지원되지 않습니다
  2. Python에서 TypeError: 디코딩 유니코드가 지원되지 않음 수정
  3. 결론
TypeError 수정: Python에서 유니코드 디코딩이 지원되지 않음

이 기사에서는 Python에서 TypeError: decoding Unicode is not supported 오류를 해결하는 방법에 대해 설명합니다.

Python의 TypeError: 유니코드 디코딩이 지원되지 않습니다

유니코드 문자열은 0에서 0x10FFFF(십진수 1,114,111) 범위의 숫자인 코드 포인트의 모음입니다. 그런 다음 메모리에서 이 일련의 코드 포인트를 나타내는 데 사용해야 하는 코드 단위 세트는 8비트 바이트로 매핑됩니다.

문자 인코딩 또는 간단히 인코딩은 유니코드 텍스트를 일련의 바이트로 변환하는 방법을 결정하는 일련의 규칙입니다. 초기 생각은 32비트 정수를 코딩 단위로 사용한 다음 CPU의 32비트 정수 표현을 사용하는 것일 수 있습니다.

가장 널리 사용되는 인코딩 중 하나는 Python이 기본적으로 자주 사용하는 UTF-8입니다. UTF는 Unicode Transformation Format의 약자이며 8은 인코딩이 8비트 값을 사용함을 나타냅니다.

UTF-16 및 UTF-32와 같은 다른 인코딩이 있지만 UTF-8보다 덜 인기가 있습니다.

예제 코드:

result = unicode(google.searchGoogle(param), "utf-8").encode("utf-8")

출력:

TypeError: decoding Unicode is not supported

Python에서 TypeError: 디코딩 유니코드가 지원되지 않음 수정

이 오류를 해결하려면 result = Unicode(google.searchGoogle(param), "utf-8").encode("utf-8") 줄의 구문을 result = google.searchGoogle(param)로 변경해야 합니다. ).encode("utf-8"). google.searchGoogle(param) 다음에 UTF-8을 제거해야 합니다. 따라서 아래 예와 같이 디코딩 유니코드가 지원되지 않음 오류가 해결됩니다.

결과 = google.searchGoogle(param).encode("utf-8")

다른 하나는 Python의 TypeError: decoding str is not supported입니다. 반복적으로 객체를 문자열로 변환하려고 시도하거나 먼저 bytes 객체를 전달하지 않고 str() 메서드를 호출할 때 발생합니다.

예제 코드:

str("even", str(123))
str("abc", encoding="utf-8")

출력:

TypeError: decoding str is not supported

위의 예에서 str 클래스는 두 번 참조됩니다. 각 호출은 서로 중첩됩니다. 적절한 바이트열 개체가 제공되지 않습니다. 대신 인코딩 키워드 인수가 설정됩니다.

유효한 바이트열 개체가 제공된 경우에만 인코딩을 구성할 수 있습니다.

이 오류를 방지하려면 형식이 지정된 문자열 리터럴을 사용할 수 있습니다. 이 오류는 문자열 형식 인터페이스 또는 최신 형식의 문자열 리터럴을 사용하여 방지할 수 있습니다.

또한 이러한 옵션은 보다 강력하고 적응 가능하며 확장 가능한 방법을 제공합니다.

str1 = "even"
num1 = 2, 4, 6, 8
result = f"{str1} {num1}"
print(result)

출력:

even (2, 4, 6, 8)

결론

출력을 UTF-8로 인코딩하고 싶지만 올바른 구문을 사용하지 않는 경우 올바른 바이트 개체가 제공되지 않기 때문에 Python 디코딩 유니코드가 지원되지 않습니다 오류가 발생합니다. Python에서 str 디코딩이 지원되지 않는 또 다른 오류가 발생합니다.

유효한 바이트열 개체가 제공되는 경우에만 인코딩을 정의할 수 있습니다. 위의 문서는 이러한 오류를 수정합니다.

Zeeshan Afridi avatar Zeeshan Afridi avatar

Zeeshan is a detail oriented software engineer that helps companies and individuals make their lives and easier with software solutions.

LinkedIn

관련 문장 - Python Error