반응형
1. UNICODE?
-. 모든 문자를 2byte로 표기하는 문자 표준
-. 자세한건 위키를 보자. ko.wikipedia.org/wiki/%EC%9C%A0%EB%8B%88%EC%BD%94%EB%93%9C
2. C++에서 UNICODE 입력
-. 유니코드 문자는 _TCHAR의 데이터형식을 사용함.
-. _TCHAR는 tchar.h에서 정의된 형식인데, char(1 byte)와 wchar_t(2 bytes)중 적합한 형태로 자동 지정되는 매크로가 정의되어 있는 것 같다. (잘 모르겠음..)
※ T_CHAR가 char로 정의된 매크로 흔적이 보이긴 하는데 unicode로 지정하지 않은 string은 _TCHAR로 자동 형변환이 안된다. 이건 나중에 공부해야지.
-. C++에서 처음에 _TCHAR에 문자열 입력을 하려 하면 오류 (물결밑줄)이 뜬다.
-. 문자열 따옴표 앞에 L을 붙여주면 (L"" 형태로) UNICODE인식되면서 오류 없이 작동함.
3. C++에서 UNICODE "한글" 출력
-. 위에서 그냥 출력 시 한글이 ?????로 뜨는 것을 볼 수 있다. 이를 해결하려면 출력언어설정(setlocale)을 해줘야 한다.
-. 구글 검색해보니 그냥 setlocale로 하는게 있던데, 컴바일러 버전 차이인지 _tsetlocale (혹은 _wsetlocale) 설정 해줘야 한다. 구문은 _wsetlocale(LC_ALL, L"korean");, 동시에 #include <locale.h> 해줘야 함.
-. 추가로, 유니코드는 한글/영문/숫자 관계없이 모두 2바이트, char는 영문/숫자만 되고 1바이트 확인된다.
728x90
반응형
'C++' 카테고리의 다른 글
[C++] 프로세스 목록 (process list, window titles) 가져오기 (0) | 2020.12.27 |
---|---|
[C++] C++ 기초3 - 포인터(pointer), 변수의 주소, 멀티레벨 포인터 (0) | 2020.12.27 |
[C++] C++ 기초1 - class, source, header 추가 (0) | 2020.12.27 |
최근댓글