유니코드 : 문자 하나당 2바이트의 공간을 확보

멀티바이트 : ANSI에서는 1바이트의 공간을 다국어에서는 2바이트의 공간을 확보

즉, 영어는 1바이트 한글은 2바이트를 확보

char

wchar_t

TCHAR

유니코드상에서 char쓰면 문제 발생 , 한 문자를 쓰는데 2바이트를 사용하므로

char 는 각 문자하나당 1바이트이다. 즉, 한 문자를 쓴다고 하는데 실제로 2바이트를 쓰니

글자가 깨져서 나온다.

멀티바이트상에서는 wchar_t를 사용할 때 문제가 발생한다.

wchar_t 는 한글자를 쓰는데 2바이트를 사용하므로 만약 영어를 wchar_t에 담고 있었다면

영어는 멀티바이트상에서 1바이트로만 표현이 가능하므로 나머지 1바이트는 0으로 채워진다.

그런데 멀티바이트상에서 이것을 NULL로 인식하기 때문에 첫번째 영어 한글자만 출력이된다.

TCHAR는 멀티바이트상에서는 char로 유니코드상에서는 wchar_t로 바뀐다.

단 wchar_t를 사용할 경우는 문자열 앞에 반드시 L 을 붙여줘야 한다.

Posted by RoaZium