반응형

 

1. UNICODE?

-. 모든 문자를 2byte로 표기하는 문자 표준
-. 자세한건 위키를 보자. ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C

 

유니코드 - 위키백과, 우리 모두의 백과사전

위키백과, 우리 모두의 백과사전. 다른 뜻에 대해서는 U;Nee Code 문서를 참조하십시오. 유니코드(Unicode)는 전 세계의 모든 문자를 컴퓨터에서 일관되게 표현하고 다룰 수 있도록 설계된 산업 표준

ko.wikipedia.org

 

2. C++에서 UNICODE 입력

-. 유니코드 문자는 _TCHAR의 데이터형식을 사용함.
-. _TCHAR는 tchar.h에서 정의된 형식인데, char(1 byte)와 wchar_t(2 bytes)중 적합한 형태로 자동 지정되는 매크로가 정의되어 있는 것 같다. (잘 모르겠음..)
※ T_CHAR가 char로 정의된 매크로 흔적이 보이긴 하는데 unicode로 지정하지 않은 string은 _TCHAR로 자동 형변환이 안된다. 이건 나중에 공부해야지.

_TCHAR를 wchar_t와 char(작동안함) 정의한 매크로

-. C++에서 처음에 _TCHAR에 문자열 입력을 하려 하면 오류 (물결밑줄)이 뜬다.

 

-. 문자열 따옴표 앞에 L을 붙여주면 (L"" 형태로) UNICODE인식되면서 오류 없이 작동함.

 

3. C++에서 UNICODE "한글" 출력

-. 위에서 그냥 출력 시 한글이 ?????로 뜨는 것을 볼 수 있다. 이를 해결하려면 출력언어설정(setlocale)을 해줘야 한다.
-. 구글 검색해보니 그냥 setlocale로 하는게 있던데, 컴바일러 버전 차이인지 _tsetlocale (혹은 _wsetlocale) 설정 해줘야 한다. 구문은 _wsetlocale(LC_ALL, L"korean");, 동시에 #include <locale.h> 해줘야 함.

-. 추가로, 유니코드는 한글/영문/숫자 관계없이 모두 2바이트, char는 영문/숫자만 되고 1바이트 확인된다.

728x90
반응형
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기