"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Python 유니코드에서 서로게이트 쌍을 처리하는 방법은 무엇입니까?

Python 유니코드에서 서로게이트 쌍을 처리하는 방법은 무엇입니까?

2024년 12월 21일에 게시됨
검색:419

How to Handle Surrogate Pairs in Python Unicode?

Python 유니코드에서 서로게이트 쌍을 처리하는 방법

Python에서 서로게이트 쌍은 기본 다국어 평면(BMP) 이상의 유니코드 문자를 나타내는 데 사용됩니다. ). 이러한 쌍은 단일 유니코드 문자를 인코딩하는 데 사용되는 두 개의 대리 코드 포인트로 구성됩니다.

대리 쌍이 포함된 Python 유니코드 문자열로 작업할 때 대리 인코딩과 관련된 오류가 발생할 수 있습니다. 이러한 오류는 Python이 상황에 따라 대리 쌍을 다르게 처리하기 때문에 발생합니다.

대리 쌍 처리

대리 쌍을 일반 문자열로 변환하려면 몇 가지 옵션이 있습니다.

  • json 사용 모듈:

    • json.loads()를 사용하여 문자열을 JSON 객체에 로드합니다. JSON 모듈은 서로게이트 쌍에서 유니코드 문자로의 변환을 자동으로 처리합니다.
  • encode() 메서드를 사용하여 인코딩 및 디코드:

    • "utf-16" 또는 "utf-16"과 같은 서로게이트 쌍을 지원하는 코덱을 사용하여 문자열을 인코딩합니다. "utf-16-le".
    • 동일한 코덱을 사용하여 인코딩된 문자열을 디코딩합니다.
    • 예:

      emoji = "This is \ud83d\ude4f, an emoji."
      encoded = emoji.encode("utf-16")
      decoded = encoded.decode("utf-16")
      print(decoded)  # Output: "This is ?, an emoji."
  • surrogatepass 오류 처리기 사용:

    • 인코딩 또는 디코딩 중에 오류가 발생하면 surrogatepass 오류 처리기를 사용하여 서로게이트를 무시할 수 있습니다. pair.
    • 예:

      encoded = emoji.encode("utf-16", "surrogatepass")
      decoded = encoded.decode("utf-16")
      print(decoded)  # Output: "?"

선택하는 접근 방식은 특정 컨텍스트와 원하는 출력 형식에 따라 달라집니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3