맥 Obj-C 에서 한글 문자열의 바이트 단위 길이를 계산하는 예
[목차(도우미)]
//한글을 포함한 문자열의 윈도 스타일의 바이트 단위로 계산하는 예
NSLog(@"%@ len=%ld", S,(long)[S lengthOfBytesUsingEncoding:(0x80000000 + kCFStringEncodingDOSKorean)]);
맥 또는 매킨토시의 Objective-C 언어에서는 한글을 2바이트가 아닌 3바이트로 취급한다. 그래서 문자열 길이 [S length] 로는 한글 길이를 윈도에서와 같이 2바이트로 계산해 주지 않는다. 윈도의 DBCS(Double Byte Character Set)으로 계산하려면 kCFStringEncodingDOSKorean 를 지정해서 인코딩을 변환한다. 그러면 0x80000000 의 의미는? 그것은 상수항으로 정의된 것을 찾을 수 없었는데 한글 등의 인코딩을 따로 정의하기 위한 자릿수 정도의 의미로 보인다.
'연구개발 이야기' 카테고리의 다른 글
주민등록번호 뒷자리 체크하는 Obj-C 소스예 (0) | 2015.09.18 |
---|---|
해시테이블을 이용하여 TMemInifile을 응용한다 (0) | 2015.03.10 |
화면 애니메이션 효과와 고속처리 주기는 7 (0) | 2014.12.17 |
[연구] 커뮤니케이션 툴로서의 UI 설계 (2) | 2012.07.16 |