>  기사  >  백엔드 개발  >  Python에서 대리 쌍을 일반 문자열로 변환하는 방법은 무엇입니까?

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

Linda Hamilton
Linda Hamilton원래의
2024-11-04 06:18:29957검색

How to Convert Surrogate Pairs to Normal Strings in Python?

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

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

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

<code class="python">emoji = "This is \ud83d\ude4f, an emoji."</code>

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

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

<code class="python">"\ud83d\ude4f".encode('utf-16', 'surrogatepass').decode('utf-16')</code>

이렇게 하면 물음표(?)로 표시되는 해당 유니코드 문자가 출력됩니다.

'?'

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

<code class="python">ascii(json.loads(r'"\ud83d\ude4f"'))</code>

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

'\U0001f64f'

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

위 내용은 Python에서 대리 쌍을 일반 문자열로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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