0

:ZWNJ하지 내가 두 ZWNJ와 아랍 문자로 작성 토큰하지만 함수가 반환이 화면에 제대로 디코딩되지 않은 사이의 공간을 대체하기 위해 노력하고 3.3

>>> nm.normalize("رشته ها") 
'رشته\u200cها' 

\ U200 여기에 'رشته'과 'ها'사이에 위치 할 반 공간으로 렌더링되어야하지만, 그렇게 엉망이된다. 나는이 기능은 그것의 일환으로 \u200c 문자와 문자열 객체를 반환 파이썬 3.3.3

+0

ZWNJ는 하프 스페이스가 아니지만 합자 동작을 방지하기위한 제로 폭 제어 문자입니다. 모든 간격은 관련 글리프의 디자인 때문입니다. –

답변

1

를 사용하고 있지만, 파이썬은 당신에게 표현을 보여줍니다. \uxxxx 구문은 표현을 디버깅 값으로 유용하게 만드는 데 사용됩니다. 이제이 표현을 복사하여 다시 파이썬에 붙여 넣을 수 있으며 똑같은 값을 얻을 수 있습니다.

즉, 기능은 광고 된 것과 정확히 동일하게 작동합니다.; 그 공간은 실제로 U+200C ZERO WIDTH NON-JOINER 코드 포인트로 대체되었습니다. 당신이 당신의 터미널 또는 콘솔에 문자열을 쓰고 싶다 경우

, print() 사용

print(nm.normalize("رشته ها")) 

데모 : 당신은 그 문자 5 (인덱스 4)를 참조 할 수

>>> result = 'رشته\u200cها' 
>>> len(result) 
7 
>>> result[4] 
'\u200c' 
>>> print(result) 
رشته‌ها 

는 단일 문자입니다 여기에 6 개의 분리 된 문자가 없습니다.