2015. 12. 20. 18:14ㆍ프로그래밍/시스템
문자셋 ( CharacterSet )
- SBCS ( Single Byte Character Set )
- MBCS ( Multi Byte Character Set )
- WBCS ( Wide Byte Character Set )
SBCS ?
- 문자를 표현하는데 1byte 를 사용
- 256 가지의 문자를 표현할 수 있다 -> 영어
- 아스키코드 기반 문자
MBCS ?
- 문자를 표현하는데 1byte , 2byte 를 혼용함
- "ABC한글" -> 같은 경우 문자열 길이가 잘못 측정되는 문제가 발생할 수 있음
이런 이슈를 처리하는 주의가 필요함
WBCS ?
- 문자를 표현하는데 2byte 를 사용
- 유니코드 기반 문자
ex)
char str[] = "ABC한글";
printf("배열크기 : %d\n",sizeof(str));
printf("문자길이 : %d\n",strlen(str));
출력
배열크기 : 8
문자길이 : 7
-> 배열크기 = 영어(3byte) + 한글(4byte) + NULL(1byte)
문자길이 = 1byte 를 문자 1개로 간주하므로, 7byte = 7
why? MBCS 사용하기 때문이다. 위처럼 한글 + 영어 조합 등의 문자열을 핸들링할 수 있는 처리가 필요하다.
!tip. WIndows 2000 이후로는 문자열처리를 내부적으로 모두 유니코드 처리를 하고 있다.
따라서, 소스레벨에서 유니코드 문자열을 사용한다고 하여 성능저하는 안 일어난다.
'프로그래밍 > 시스템' 카테고리의 다른 글
1-5. 프로세스 (0) | 2015.12.28 |
---|---|
1-3. 운영체제 32bit vs 64bit (0) | 2015.12.20 |
1-4. 메모리 접근 방식 (0) | 2015.12.20 |
1-1. 프로그램의 실행과정 (0) | 2015.12.16 |
1. 컴퓨터 하드웨어의 구성 (0) | 2015.12.15 |