String.prototype.normalize()
문자열의 유니코드 정규화 방식(Unicode Normalization Form)에 따라 정규화된 형태로 반환
유니코드 정규화 방식
- 정규화 방식 D (NFD) 정준 분해: 한 (U+D55C) → ᄒ (U+1112) + ᅡ (U+1161) + ᆫ (U+11AB)
- 정규화 방식 C (NFC) 정준 분해한 뒤에 다시 정준 결합 : ᄒ (U+1112) + ᅡ (U+1161) + ᆫ (U+11AB) → 한 (U+D55C)
- 정규화 방식 KD (NFKD) 호환 분해(기호,한글 분리) : ㉮ → 가 (U+1100 + U+1161)
- 정규화 방식 KC (NFKC) 호환 분해한 뒤에 다시 정준 결합(NFKD 에서 문자열만 재결합) : 가 (U+1100 + U+1161) → ㉮
호환 분해
- 정준 분해(일반 글자) 동작 외 특수 기호도 정규화 한다.
몇몇 특징
- 한글을 NFD로 처리하면 중성과 종성은 일반적인 자음/모음 글자가 아니다. ('ㅏ'!='ᅡ' , 'ㄴ' != 'ᆫ')
- 한글의 중성, 종성의 글자가 아닌 자음과 모음을 순서대로 문자열로 배치하면 NFKC 처리 시, 초성과 중성까지만 합쳐진다. 종성은 합쳐지지 않는다. ('ㅎㅏㄴ'=>'하ᄂ')
- NFKD는 최대한 언어의 글자 및 기호까지도 분리한다.
- NFKC는 언어의 글자는 최대한 유지하고 기호는 분리한다
변환 테스트
구분 |
입력 문자열 |
NFD 처리 문자열 |
NFC 처리 문자열 |
NFKD 처리 문자열 |
NFKC 처리 문자열 |
테스트 |
|