랭귀지/C\C++

문자형식 변환

Angler.lee 2009. 7. 14. 14:41

유니코드 -> 멀티바이트 : WideCharToMultiByte()

멀티바이트 -> 유니코드MultiByteToWideChar()


자세한 내용은 MSDN을 참고하고 일반적으로 사용하는것은 다음과 같이 하면 된다.


[유니코드 -> 멀티바이트]


WCHAR *strWC = _T("abcde");

CHAR strMB[1024];

WideCharToMultiByte( CP_ACP, 0, strWC, -1, strMB, 1024, NULL, NULL );


유니코드 문자열인 strWC의 내용이 멀티바이트 문자열로 strMB에 들어간다.

함수의 4번째 인자에는 변환할 문자열 길이가 들어가는데 -1로 하게 되면 원본(strWC)문자열에서 NULL문자가 나오는 곳까지 모두 변환하게 된다. 함수의 5번째 인자는 변환해서 들어갈 대상 문자열의 길이이다.


[멀티바이트->유니코드]


CHAR *strMB = "abcde";

WCHAR strWC[1024];

MultiByteToWideChar( CP_ACP, 0, strMB, -1, strWC, 1024 );