Java

OS별 유니코드 정규화

Bong Gu 2020. 10. 11. 21:41
728x90

java

유니코드 정규화

  • MacOS 에서 만든 한글이름 파일을 윈도우에서 사용 시, 자모 분리가 될 때가 있다.
  • 유니코드를 쓰지만 서로 다른 유니코드 정규화 방식을 쓴다.
    • MacOS : NFD
    • Windows : NFC

차이점

  • NFD
    • 코들를 정준 분해한다.
  • NFC
    • 코드를 정준 분해 후, 다시 정주 결합한다.

JDK에서 Unicode Normalization 지원한다.

사용법

public static String normalizeNfc(String unNormalMailBoxName) {
    if (!Normalizer.isNormalized(unNormalMailBoxName, Normalizer.Form.NFC)) {
        return Normalizer.normalize(unNormalMailBoxName, Normalizer.Form.NFC);
    }
    return unNormalMailBoxName;
}
  • NFC가 아니면 NFC로 Normarize 한다.

참고


728x90