유니코드 정규화

위키백과, 우리 모두의 백과사전.
둘러보기로 가기 검색하러 가기
유니코드
부호화 형식
UCS
양방향 텍스트
BOM
한중일 통합 한자
유니코드 범위 목록
유니코드 정규화
유니코드와 HTML
유니코드와 전자 우편
유니코드 글꼴
v  d  e  h

유니코드 정규화는 모양이 같은 여러 문자들이 있을 경우 이를 기준에 따라 하나로 통합해 주는 일을 가리킨다. 그 기준으로는 아래 표와 같이 NFD, NFC, NFKD, NFKC가 있다.

제목 묘사
정규화 방식 D (NFD) 정준 분해
정규화 방식 C (NFC) 정준 분해한 뒤에 다시 정준 결합
정규화 방식 KD (NFKD) 호환 분해
정규화 방식 KC (NFKC) 호환 분해한 뒤에 다시 정준 결합

정규화의 예[편집]

  • NFD로의 정규화 : 코드를 정준 분해한다.
    • 발음 구별 기호가 붙은 글자가 하나로 처리되어 있을 경우, 이를 기호별로 나누어 처리하기
      • À (U+00C0) → A (U+0041) + ̀ (U+0300)
      • (U+1EC7) → e (U+0065) + ̂ (U+0302) + ̣ (U+0323)
      • (U+304C) → (U+304B) + (U+3099)
      • (U+30DD) → (U+30DB) + (U+309A)
      • Й (U+0419) → И (U+0418) + ̆ (U+0306)
    • 한글을 한글 소리마디 영역(U+AC00~U+D7A3)으로 썼을 경우, 이를 첫가끝 코드로 처리하기
      • (U+C704) → (U+110B) + (U+1171)
      • (U+D55C) → (U+1112) + (U+1161) + (U+11AB)
    • 표준과 다른 조합 순서를 제대로 맞추기
      • e (U+0071) + ̇ (U+0307) + ̣ (U+0323) → e (U+0071) + ̣ (U+0323) + ̇ (U+0307)
  • NFC로의 정규화 : 코드를 정준 분해한 뒤에 다시 정준 결합한다.
    • 발음 구별 기호(조합 분음 기호: U+0300~U+036F)가 잇따라 붙었을 경우, 이를 코드 하나로 처리하기
      • A (U+0041) + ̀ (U+0300) → À (U+00C0)
      • e (U+0065) + ̂ (U+0302) + ̣ (U+0323) → (U+1EC7)
      • (U+304B) + (U+3099) → (U+304C)
      • (U+30DB) + (U+309A) → (U+30DD)
      • И (U+0418) + ̆ (U+0306) → Й (U+0419)
    • 한글을 첫가끝 코드로 썼을 경우, 이를 한글 소리마디 영역(U+AC00~U+D7A3)으로 처리하기
      • (U+110B) + (U+1171) → (U+C704)
      • (U+1112) + (U+1161) + (U+11AB) → (U+D55C)
      • (U+1103) + (U+1172) + (U+11F0) → (U+B4C0) + (U+11F0) - 종성을 뺀 초성과 중성까지만 변환할 수 있는 경우, 알고리듬에 따라 거기까지만 변환한다[1]
  • NFKD로의 정규화 : 코드를 호환 분해한다.
    • 합자 처리된 알파벳 코드를 각 알파벳으로 분해하기
      • (U+FB01) → f (U+0066) + i (U+0069)
    • 옛 알파벳을 현대 알파벳으로 바꾸기
      • ſ (U+017F) → s (U+0073)
      • (U+1E9B) → s (U+0073) + ̇ (U+0307)
  • NFKC로의 정규화 : 코드를 호환 분해한 뒤에 다시 정준 결합한다.
    • 발음 구별 기호가 있는 옛 알파벳을 현대 알파벳으로 바꾸기
      • (U+1E9B) → (U+1E61)
  • 모든 기준에서의 공통된 정규화

각주[편집]

  1. “The Unicode Standard Core Specification, Chapter 3. Conformance” (PDF) (영어) 버전 7.0.0판. The Unicode Consortium. 2014년 7월 16일: 78(149). if neither case was true, just add the character 

외부 링크[편집]