연구개발 이야기
맥 Obj-C 에서 한글 문자열의 바이트 단위 길이를 계산하는 예
금메달.아빠
2015. 9. 14. 02:00
//한글을 포함한 문자열의 윈도 스타일의 바이트 단위로 계산하는 예
NSLog(@"%@ len=%ld", S,(long)[S lengthOfBytesUsingEncoding:(0x80000000 + kCFStringEncodingDOSKorean)]);
맥 또는 매킨토시의 Objective-C 언어에서는 한글을 2바이트가 아닌 3바이트로 취급한다. 그래서 문자열 길이 [S length] 로는 한글 길이를 윈도에서와 같이 2바이트로 계산해 주지 않는다. 윈도의 DBCS(Double Byte Character Set)으로 계산하려면 kCFStringEncodingDOSKorean 를 지정해서 인코딩을 변환한다. 그러면 0x80000000 의 의미는? 그것은 상수항으로 정의된 것을 찾을 수 없었는데 한글 등의 인코딩을 따로 정의하기 위한 자릿수 정도의 의미로 보인다.