====== Mac 한글 파일명 자소 분리 현상 ====== * [[https://ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C_%EC%A0%95%EA%B7%9C%ED%99%94|유니코드 정규화 - 위키백과, 우리 모두의 백과사전]] * [[https://markboy95.blogspot.com/2012/03/nfc-nfd_21.html|markboy's archive: NFC와 NFD 서로 변환하기]] * MaxOSX는 ''NFD''를 윈도우즈나 리눅스는 ''NFC''로 유니코드 정규화를 수행해서 파일이름이 Max/Windows,Linux 상호간에 깨져보인다. * [[https://www.j3e.de/linux/convmv/man/|convmv]] 을 통해 파일명의 인코딩을 바꿔줄 수 있는데 이때 ''NFC/NFD'' 변환도 가능하다. # Windows Subsystem Linux에서 설치가능. sudo apt-get install convmv # NFD -> NFC (to Linux/Windows) convmv -f utf-8 -t utf-8 --nfc --notest 파일명 # NFC -> NFD (to MacOS X) convmv -f utf-8 -t utf-8 --nfd --notest 파일명 towinfilename.sh #!/bin/sh convmv -f utf-8 -t utf-8 --nfc --notest "$1" ===== Linux ===== * 리눅스는 언제 부터인가 ''NFD'' 파일명도 올바른 한글로 보여주는 것 같다. 다만, 실제 파일명은 보이는 것과는 다르게 자소 분리가 된 상태라서 문자열 복사를 해보면 잘 못돼있다. ===== Python ===== import unicodedata unicodedata.normalize('NFC','Mac용 NFD 유니코드문자열') # NFC로 변환 unicodedata.normalize('NFD','Win/Mac용 NFC 유니코드문자열') # NFD로 변환 {{::python_unicode_normalize.png|}} ===== Java ===== * [[java:mac|Java와 Mac]] * [[https://docs.oracle.com/javase/tutorial/i18n/text/normalizerapi.html|Java Normalizer API]] ===== Windows ===== * https://github.com/namhokim/HangulJasoFixer2 * [[:windows|Windows]] 에서 파일명 일괄 변환 기능