🧑‍💻/Objective C

Objective C 한글이 분리되어 표시될 때 NFD > NFC

유리맥 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

 

반응형