0

디코딩 결과

비정규화
비정규화(호환)

인코딩 결과

정규화
정규화(호환)

Unicode 정규화에 대해서

Unicode 정규화란 문자를 분해·합성하는 것을 말합니다. Unicode 문자는 겉보기에는 같아도 복수의 표현 방법이 존재하는 것이 있습니다. 예를 들어 'â'는 'â'(U+00E2)의 1개 코드 포인트로도 나타낼 수 있고, 'a'(U+0061)와 ' ̂'(U+0302)의 2개 분해된 코드 포인트(기저 문자 + 결합 문자)로도 나타낼 수 있습니다. 전자를 합성된 문자(Precomposed character), 후자를 결합 문자열(Combining character sequence, CCS)이라고 부릅니다.

Unicode 정규화에는 다음 종류가 있습니다.

정규화 형식설명
Normalization Form D (NFD)정준 등가(Canonical Equivalence)로 분해「â」(U+00E2) -> 「a」(U+0061) + 「 ̂」(U+0302)
Normalization Form KD (NFKD)호환 등가(Compatibility Equivalence)로 분해「fi」(U+FB01) -> 「f」(U+0066) + 「i」(U+0069)
Normalization Form C (NFC)정준 등가로 분해 후 다시 합성「â」(U+00E2) -> 「a」(U+0061) + 「 ̂」(U+0302) -> 「â」(U+00E2)
Normalization Form KC (NFKC)호환 등가로 분해 후, 정준 등가로 다시 합성「fi」(U+FB01) -> 「f」(U+0066) + 「i」(U+0069) -> 「f」(U+0066) + 「i」(U+0069)

정준 등가는 시각적 및 기능적으로 등가인 문자를 유지한 상태에서 정규화합니다. 예. 「â」 <-> 「a」 + 「 ̂」

호환 등가는 정준 등가 외에, 의미적으로 다른 형태를 취하는 문자도 정규화 대상이 됩니다. 예. 「fi」 -> 「f」 + 「i」