-
Objective C 한글이 분리되어 표시될 때 NFD > NFC🧑💻/Objective C 2019. 7. 31. 13:44반응형
블로그 개설 초창기에 뭐라도 적어보자고 끄적였는데 누군가에겐 필요한 글이었네요.
3줄짜리를 성의 있는 포스트로 바꿔봤습니다. 😅😅
macOS 정보를 서버에 전송하여 데이터베이스에 저장하고 IE 브라우저에서 표시했더니 한글 자음 모음이 분리되는 현상이 발생했습니다.
DB 데이터를 복사해서 Windows 메모장에 붙여넣기 하면 깨지는 게 눈에 보입니다.
📌 유니코드 정규화 : 모양이 같은 여러 문자들이 있을 경우 이를 기준에 따라 하나로 통합해 주는 일
유니코드 정규화 방법에는 여러 종류가 있지만 NFC와 NFD를 비교해 보겠습니다.
NFD NFC 한글의 자음과 모음을 분리하여 저장하는 방식 한글의 자음과 모음을 분리한 뒤 결합하여 저장하는 방식 macOS 시스템에서 주로 사용 Windows 시스템에서 주로 사용 예) 홍길동 ➡️ ㅎㅗㅇㄱㅣㄹㄷㅗㅇ 예) 홍길동 ➡️ ㅎㅗㅇㄱㅣㄹㄷㅗㅇ ➡️ 홍길동 NSString의 precomposedStringWithCanonicalMapping을 사용하면 한글의 자음과 모음을 결합해줍니다.
서버에 전송해야할 때만 변환해주어 문제를 해결했습니다.
/* Objective C */ NSString* nfdString = @"홍길동"; // ㅎㅗㅇㄱㅣㄹㄷㅗㅇ NSString* nfcString = @""; nfcString = [nfdString precomposedStringWithCanonicalMapping];
/* Swift */ let nfdString = "홍길동" // ㅎㅗㅇㄱㅣㄹㄷㅗㅇ var nfcString = "" nfcString = nfdString.precomposedStringWithCanonicalMapping
반응형