유니코드 NFD to NFC 변환
Byung Kyu Kim
1 min read
유니코드 NFD 문자열을 NFC 문자열로 변환하는 방법을 Python 스크립트와 nfd2c 툴을 활용하여 설명
NFD와 NFC
유니코드는 다양한 언어와 문자를 표현하기 위한 표준입니다.
동일한 문자라도 NFD와 NFC 라는 두 가지 방식으로 표현될 수 있으며, 서로 호환되지 않아 문제를 일으킬 수 있습니다.macOS가 아닌 다른 OS의 경우 자모음을 분리해서 표현됨
NFD
(Normalization Form Decomposition)
유니코드 문자열을 분해하여 기본 문자와 결합 문자로 표현하는 방식
일부 시스템에서 호환성 문제 발생 가능성이 있음
(macOS 등)
시각적으로 인지하기 어려움
저장 공간을 더 많이 사용함
NFC
(Normalization Form Canonical Composition)
유니코드 문자열을 합성하여 단일 문자로 표현하는 방식
대부분의 시스템에서 호환성이 높음
(Windows, Android 등)
시각적으로 인지하기 편함
Python Script
unicodedata.normalize
함수를 사용하여 NFD 문자열을 NFC 문자열로 변환
import unicodedata
def nfd_to_nfc(text):
return unicodedata.normalize('NFC', text)
text = "Hello, world!"
nfc_text = nfd_to_nfc(text)
print(nfc_text) # 출력: "Hello, world!"
Python Tool : nfd2c
파일이나 디렉토리 이름의 NFD 문자열을 NFC 문자열로 변환하는 데 유용
nfd2c
툴을 통해 파일이나 디렉토리 이름 확인 후,-x
옵션을 통해 rename 실행
$ pip install unicode-nfd2c
$ nfd2c
Converts NFD Unicode filenames to NFC.
USAGE: nfd2c [options] [dir(s)|file(s)]
-x, --execute rename on
-r, --recursive sub-directories on
-d, --dir-only directory only
-f, --file-only file only
-h, --help help
0
Subscribe to my newsletter
Read articles from Byung Kyu Kim directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by