유니코드 정규화 (NFC, NFD, NFKC, NFKD)
같은 모양의 텍스트도 서로 다른 코드포인트 시퀀스로 저장될 수 있습니다 — é는 하나의 합성 문자(U+00E9)일 수도, 'e'와 결합 악센트(U+0065 U+0301)일 수도 있습니다. 유니코드 정규화는 텍스트를 정규 형식으로 다시 써서, 같아 보이는 문자열이 같게 비교되고 예측 가능하게 정렬되며 파일시스템·데이터베이스를 통해 왕복되게 합니다. NFC는 가장 짧은 합성 형식으로 결합(저장·웹의 기본값으로 최적), NFD는 완전 분해(macOS 파일명에 흔함), NFKC·NFKD는 추가로 호환 매핑을 적용해 합자(fi → fi), 전각 문자(2024 → 2024), 로마 숫자(Ⅻ → XII) 등을 폴딩합니다. 결합 표시를 제거해 악센트를 완전히 없앨 수도 있습니다. 비교 표는 각 형식의 코드포인트·UTF-8 바이트 길이를 보여 주고 입력이 이미 어떤 형식인지 표시합니다 — NFC를 기대했는데 NFD인 데이터를 찾는 데 유용합니다. 모든 처리는 로컬에서 실행되며 텍스트는 브라우저를 떠나지 않습니다.
정규화 출력 · 17 글자 · 32 바이트
Café file 2024 Ⅻ ①
입력이 이미 NFC 형식입니다.
모든 형식 비교
| 형식 | 글자 | 바이트 | = 입력? |
|---|---|---|---|
| NFC | 17 | 32 | 예 |
| NFD | 18 | 33 | 아니오 |
| NFKC | 20 | 21 | 아니오 |
| NFKD | 21 | 22 | 아니오 |
NFC가 저장·웹의 가장 안전한 기본값입니다. NFKC·NFKD와 기호 제거는 손실이 있으니 정확히 유지할 텍스트엔 쓰지 마세요.
사용법
- 입력 상자에 텍스트를 붙여넣거나 입력하세요.
- 대상 형식(NFC·NFD·NFKC·NFKD)을 선택하고 정규화된 출력을 복사하세요.
- '발음 구별 기호 제거'를 켜면 악센트도 제거되며, 표에서 입력이 이미 어떤 형식인지 확인하세요.
자주 묻는 질문
- 어떤 형식을 써야 하나요?
- NFC가 저장·전송·웹에서 가장 안전한 기본값입니다 — 가장 짧은 정규 형식이며 대부분의 시스템이 기대하는 형식입니다. 시스템이 분해 텍스트를 요구할 때(예: 일부 macOS 환경) NFD를 쓰세요. NFKC·NFKD는 합자·전각·위/아래 첨자 폴딩 같은 호환 변환을 의도적으로 원할 때만 쓰세요 — 손실 변환이기 때문입니다.
- '발음 구별 기호 제거'는 무엇을 하나요?
- 텍스트를 분해(NFD)하고 모든 결합 표시를 제거한 뒤 선택한 형식으로 다시 정규화합니다 — 'café'는 'cafe', 'Crème Brûlée'는 'Creme Brulee'가 됩니다. ASCII 슬러그나 악센트 무시 검색 키를 만들 때 유용하지만, 많은 언어에서 의미가 바뀌므로 정확히 유지해야 하는 텍스트에는 쓰지 마세요.
- 왜 형식 간 바이트 수가 다른가요?
- 분해 형식(NFD·NFKD)은 보통 더 많은 코드포인트를 씁니다 — 합성 'é'는 UTF-8에서 2바이트 한 문자지만, 'e' + 결합 악센트는 합계 3바이트의 두 문자입니다. 호환 형식은 양쪽 다 가능합니다. 표에서 정확한 코드포인트·바이트 길이를 비교할 수 있습니다.
- 정규화는 가역적인가요?
- NFC ↔ NFD는 정규 동등성에 대해 정보를 보존하며 가역적입니다. NFKC·NFKD는 가역적이지 않습니다 — 합자나 전각 숫자가 폴딩되면 원래 구분은 사라집니다. 발음 구별 기호 제거도 단방향입니다.
이 주제의 가이드
관련 도구
줄바꿈 제거
줄바꿈으로 끊긴 줄을 다시 이어 깔끔한 텍스트로 — PDF·이메일에서 복사할 때 생기는 강제 줄바꿈을 없애되 실제 문단은 유지합니다.
HTML → 일반 텍스트
스니펫에서 HTML 태그 제거하고 텍스트만 — 블록 레벨 줄바꿈 유지·`<script>`·`<style>` 제거·엔티티 디코딩.
전화번호 포맷터 (E.164 / 국제 / 국내)
지저분한 전화번호 입력을 E.164(`+82010…`), 국제(`+82 10 1234 5678`), 국내, `tel:` URI 포맷으로 정규화.
점자 변환기 (텍스트 ↔ 점자)
텍스트를 유니코드 점자(1종)로 변환하고 점자를 다시 텍스트로 디코딩합니다. 대문자·숫자 기호 포함, 브라우저에서 동작합니다.
유니코드 문자 검사기
문자열을 분해해 각 문자의 코드포인트·UTF-8 바이트·HTML 엔티티·CSS 이스케이프·유니코드 블록 표시.
위첨자 · 아래첨자 메이커
일반 텍스트 입력 → Unicode 위첨자(²)·아래첨자(₂) 변형. 채팅·문서·폰트 도움 없는 어디든 붙여넣기.