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

Python에서 서로게이트 쌍을 일반 문자열로 변환하는 방법은 무엇입니까?

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

How to Convert Surrogate Pairs to Normal Strings in Python?

Python에서 서로게이트 쌍을 일반 문자열로 변환

이 질문은 서로게이트 쌍을 포함하는 Python 유니코드 문자열을 표준 문자열로 변환하는 방법을 찾습니다. 대표. 목표는 이해하기 쉬운 유니코드 문자 또는 표준화된 16진수 형식을 얻는 것입니다.

제공된 코드 조각은 이모티콘을 나타내는 서로게이트 쌍을 포함하는 Python 문자열을 나타냅니다.

emoji = "This is \ud83d\ude4f, an emoji."

문제를 해결하려면 구별하는 것이 중요합니다. 디스크에 있는 JSON 파일의 리터럴 서로게이트 쌍 문자열(6자)과 메모리에 있는 단일 문자 서로게이트 쌍 문자열(1자) 사이.

문자열이 Python 소스 코드에 있는 단일 문자 서로게이트 쌍인 경우 (제공된 예 등) 이는 잠재적인 버그 업스트림을 나타냅니다. 이 문제가 발생하여 해결할 수 없는 경우 surrogatepass 오류 처리기를 사용할 수 있습니다:

"\ud83d\ude4f".encode('utf-16', 'surrogatepass').decode('utf-16')

물음표로 표시되는 해당 유니코드 문자를 출력합니다. (?):

'?'

디스크의 JSON 파일에 있는 리터럴 서로게이트 쌍 문자열의 경우 JSON 데이터를 로드한 후 서로게이트 쌍이 없어야 합니다.

ascii(json.loads(r'"\ud83d\ude4f"'))

이렇게 하면 다음이 출력됩니다. 유니코드 문자에 대한 표준화된 16진수 형식:

'\U0001f64f'

이 차이점을 이해하는 것은 Python에서 서로게이트 쌍을 처리하고 이를 사용 가능한 형식으로 변환하는 데 필수적입니다.

최신 튜토리얼 더>

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

Copyright© 2022 湘ICP备2022001581号-3