본문 바로가기

Unicode2

Unicode 와 ANSI 문자의 변환을 해주는 매크로 링크 : http://blog.naver.com/bc8c/61528989 f vs 2005로 넘어오면서 부터 msvs는 unicode를 기본으로 사용 하는 듯 하다. 해서 속성 값을 멀티바이트 문자열로 바꿔주어야 하는데, 윈도우 프로그래밍을 하면서 앞으로 미래를 생각한다면 unicode로 프로그래밍 하는 것이 좋다. 제프리 리처가 쓴 windows via c/c++의 초반부에 이러한 이유로 unicode를 사용하여 프로그램 하라고 나오는데, 당장은 ANSI와 unicode의 변화가 완전하게 이루어 지지 않았다. 따라서 상황에 따라 알아서 함수들을 사용하게 해주는 매크로를 정의한 헤더가 바로 tchar.h 이다. 이 헤더파일을 include 해주면 unicode와 ANSI 문자열에 관한 함수들을 사용 할 .. 2010. 12. 11.
MultiByteToWideChar와 WideCharToMultiByte 함수 wcstombs()와 mbstowcs()를 이용해서 UNICODE ANSI 문자열 변환을 할 때 문제가 발생 했다. wcstombs()를 사용해서 WCHAR 문자열에서 char 문자열로 변환을 할 때 영어는 아무런 문제 없이 동작한다. 하지만 한글을 변환 할 때 문자열이 알수없는 문자들로 변환된다. 그 이유는 한글은 2byte이고 영문은 1byte라는데 있다. WCHAR* uniStr은 _T("ab안녕") 이라는 문자열의 메모리 구조이다.61006200bec8b3e700 char* ansStr은 위의 UNICODE문자열을 받기 위한 문자열 배열이다. 이 함수가 호출되었을 때 ansStr의 메모리를 보면 아래와 같다. 61 62 be b3 0 이와 같은 구조로 들어가기 때문에 한글이 WCHAR 문자열이 c.. 2010. 11. 9.