Python에서 유니코드 정규화: 유니코드 표현 단순화
Python에서 unicodedata 모듈은 유니코드 문자열 표현을 단순화하기 위해 .normalize() 함수를 제공합니다. . 이 함수는 분해된 유니코드 항목을 가장 간단한 복합 형식으로 변환합니다.
다음 예를 고려하십시오.
import unicodedata char = "á" print(len(char)) # Output: 1 [print(unicodedata.name(c)) for c in char] # Output: ['LATIN SMALL LETTER A WITH ACUTE'] char = "á" print(len(char)) # Output: 2 [print(unicodedata.name(c)) for c in char] # Output: ['LATIN SMALL LETTER A', 'COMBINING ACUTE ACCENT']
"á" 문자는 두 개의 코드 포인트로 구성됩니다: U 0061(LATIN SMALL LETTER A) 및 U 0301(급성 악센트 결합). 분해되면 이러한 문자는 "á"로 나타납니다.
이 문자열을 정규화하려면 .normalize('NFC')를 사용하면 다음과 같은 구성된 형식을 반환합니다.
print(ascii(unicodedata.normalize('NFC', '\u0061\u0301'))) # Output: '\xe1'
반대로 . Normalize('NFD')는 분해된 형식을 반환합니다.
print(ascii(unicodedata.normalize('NFD', '\u00E1'))) # Output: 'a\u0301'
호환성을 처리하기 위해 추가 정규화 형식이 존재합니다. 코드 포인트. NFKC 및 NFKD는 호환성 문자를 표준 형식으로 바꿉니다. 예를 들어 U 2160(ROMAN NUMERAL ONE)은 NFKC를 사용하여 "I"로 정규화됩니다.
print(unicodedata.normalize('NFKC', '\u2167')) # Output: 'VIII'
일부 문자에는 고유한 분해 형식이 없을 수 있으므로 정규화가 항상 되돌릴 수 있는 것은 아니라는 점에 유의하는 것이 중요합니다.
위 내용은 Python\의 `unicodedata.normalize()` 함수는 어떻게 유니코드 표현을 단순화합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!