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 중국어 웹사이트의 기타 관련 기사를 참조하세요!