ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Objective C 한글이 분리되어 표시될 때 NFD > NFC
    🧑‍💻/Objective C 2019. 7. 31. 13:44
    반응형

    블로그 개설 초창기에 뭐라도 적어보자고 끄적였는데 누군가에겐 필요한 글이었네요.

    3줄짜리를 성의 있는 포스트로 바꿔봤습니다. 😅😅

     

     


     

     

    macOS 정보를 서버에 전송하여 데이터베이스에 저장하고 IE 브라우저에서 표시했더니 한글 자음 모음이 분리되는 현상이 발생했습니다.

    DB 데이터를 복사해서 Windows 메모장에 붙여넣기 하면 깨지는 게 눈에 보입니다.

     

     

    📌 유니코드 정규화 : 모양이 같은 여러 문자들이 있을 경우 이를 기준에 따라 하나로 통합해 주는 일

     

    유니코드 정규화 방법에는 여러 종류가 있지만 NFC와 NFD를 비교해 보겠습니다.

     

    NFD NFC
    한글의 자음과 모음을 분리하여 저장하는 방식 한글의 자음과 모음을 분리한 뒤 결합하여 저장하는 방식
    macOS 시스템에서 주로 사용 Windows 시스템에서 주로 사용
    예) 홍길동 ➡️ ㅎㅗㅇㄱㅣㄹㄷㅗㅇ 예) 홍길동 ➡️ ㅎㅗㅇㄱㅣㄹㄷㅗㅇ ➡️ 홍길동

     

     

    NSStringprecomposedStringWithCanonicalMapping을 사용하면 한글의 자음과 모음을 결합해줍니다.

    서버에 전송해야할 때만 변환해주어 문제를 해결했습니다.

    /* Objective C */
    NSString* nfdString = @"홍길동"; // ㅎㅗㅇㄱㅣㄹㄷㅗㅇ
    NSString* nfcString = @"";
    
    nfcString = [nfdString precomposedStringWithCanonicalMapping];
    /* Swift */
    let nfdString = "홍길동" // ㅎㅗㅇㄱㅣㄹㄷㅗㅇ
    var nfcString = ""
    
    nfcString = nfdString.precomposedStringWithCanonicalMapping

     

    반응형

    댓글

Designed by Tistory.