Java 유니코드 정규화(Unicode Normalization Form)

💜poiuyy0420·2022년 5월 11일
1

MAC OS에서 사용하던 중에 한글이름 자모가 분리되어 보일 때가 있다.
OS 별 Unicode가 다르다고 한다.
Mac OS X 는 NFD, 윈도우는 NFC 를 쓴다.

파일을 저장 후에 윈도우에서 저장할 때는 잘 되었는데, mac에서 저장 시 이렇게 깨지는 현상이 나왔다.

Java는 유니코드 정규화 기능(Unicode Normailzation) 을 지원하고 있다.

import java.text.Normalizer;

// 정준분해 : NFD(소리 마디를 첫가끝 코드로 분해)
String nfd = Normalizer.normalize(title, Normalizer.Form.NFD);
// 정준결합 : NFC(첫가끝 코드를 소리 마디로 결합)
String nfc = Normalizer.normalize(nfd, Normalizer.Form.NFC);


public static String normalizeNfc(String unNormalMailBoxName) {
    if (!Normalizer.isNormalized(unNormalMailBoxName, Normalizer.Form.NFC)) {
        return Normalizer.normalize(unNormalMailBoxName, Normalizer.Form.NFC);
    }
    return unNormalMailBoxName;
}
profile
안녕하세요 :)

0개의 댓글