2017-04-24 4 views
-1

이 문자열이 있습니다.유니 코드 길이가 파이썬

text = u"\ud800\udc00" 

내가 len(text)을 확인할 때, 그것은 2를 반환합니다.

왜 이러한 일이 발생하는지 잘 모르겠습니다.

답변

3

문자열에 유니 코드 코드 포인트가 두 개 있고 문자열에 유니 코드 코드 포인트 시퀀스가 ​​있습니다 (Python 3).

파이썬 2에서는 문자열이 아니지만 유니 코드 코드 포인트의 시퀀스 인 unicode 개체입니다.

+0

Python 3.3+ 및 다양한 이전 버전의 빌드는 유효한 유니 코드가 아니더라도 문자열에서 개별 대리 코드를 허용합니다. 이 경우 repr은'u '\\ ud800 \\ udc00''입니다. 좁은 빌드에서 repr은'u '\ U00010000'(파이썬 3에서는'u' 접두어없이)이지만 길이는 2입니다. – eryksun