시스템 프로그래밍 - 2부 아스키코드 vs 유니코드

김주현·2021년 9월 24일
0

시스템 프로그래밍

목록 보기
2/21

01 윈도우즈에서의 유니코드

아스키코드 : 미국에서 정의하고 있는 표준이다 1바이트로 표현됨(알파벳 + 확장문자)

유니코드 : 2바이트로 표현되는 여러 문자들을 표현하기위한 문자셋

문자셋 : 약속된 문자의 표현방법 SBCS(문자표현에 1바이트),MBCS(1바이트로되면 1바이트 안되면 2바이트),WBCS(모든 문자를 2바이트로 처리)

WBCS 기반의 프로그래밍

char를 대신하느 wchar_t : char형 변수는 1바이트 메모리 공간만 할당되지만,wchar_t형 변수는 2바이트 메모리 공간이 할당됨

"ABC"를 대신하는 L"ABC" : 문자열 앞에 선언된 문자 L은 "이어서 등장하는 문자열은 유니코드 기반으로 표현하라"는 의미를 지닌다 유니코드에서는 문자열의 끝을 의미하는 널 문자까지도 2바이트로 처리된다.ㅠ

핵심 요약

  1. SBCS,MBCS,WBCS의 이해 : SBCS는 문자를 표현하는 데 1바이트를 ,MBCS는 문자를 표현하는 데 1바이트 혹은 2바이트를, WBCS는 문자를 표현하는 데 2바이트를 사용하는 문자셋을 의미한다.유니코드는WBCS에 해당한다.

2.유니코드 기반 문자열 처리 함수 : ANSI표준 문자열 처리 함수는 별도로 유니코드 기반을 정의하고 있다 . 이들을 사용해서 유니코드 기반으로 프로그램을 작성할 수 있어야 한다.

3.UNICODE와 _UNICODE : 매크로 UNICODE와 _UNICODE의 정의 유우에 따라서 함수의 선언형태가 달라진다. 이 두 매크로를 기반으로 유니코드 방식과 MBCS 방식의 컴파일이 가능하도록 프로그램을 작성할 수 있어야 한다.

4.유니코드 방식과 MBCS 방식을 모두 지원하기 위한 main 함수의 구성 : MBCS 방식을 지원하기 위해서 main이 존재한다면, 유니코드 방식을 지원하기 위해서 wmain이 존재한다. 그리고 이두 가지 방식을 모두 지원하기 위해서 _tmain이 존재한다. 이들의 관계를 이해하고,선언된 형태에 따라서 전달되는 문자열이 어떻게 구성되는지 확인하자.

0개의 댓글