1-2. 문자셋 ( CharacterSet )

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