검색결과 리스트
글
UTF8 / UTF16 변환
(MFC 를 이용한 UTF8 / UTF16 문자열 변환)
Intro
C++ 을 가지고 개발을 하다보면, 문자열의 인코딩으로 인해서 상당히 스트레스를 많이 받습니다.
어떤 프로젝트는 멀티바이트를 사용하고, 어느 프로젝트는 유니코드를, 또 어떤 프로젝트는 ANSI 를....
이렇게 각기 다른 문자열 방식을 사용하는 경우, 개발자는 미쳐버립니다. =_=
Intent
오늘은 그 중, UTF-8 과 UTF-16 사이에 문자열 변환 방법에 대해서 정리해 보겠습니다.
사실 알고리즘이라는게 따로 없으므로, 코드만 올리도록 하겠습니다.
더불어 시간이 나는데로, 추가적인 인코딩간의 변환방법에 대해서 추가로 블로깅 하도록 하겠습니다.
Source Code
[UTF16 -> UTF8]
CStringA UTF16toUTF8(const CStringW& utf16)
{
CStringA utf8;
int len = WideCharToMultiByte(CP_ACP, 0, utf16, -1, NULL, 0, 0, 0);
if (len>1)
{
char *ptr = utf8.GetBuffer(len-1);
if (ptr) WideCharToMultiByte(CP_ACP, 0, utf16, -1, ptr, len, 0, 0);
utf8.ReleaseBuffer();
}
return utf8;
}
[UTF8 -> UTF16]
CStringW UTF8toUTF16(const CStringA& utf8)
{
CStringW utf16;
int len = MultiByteToWideChar(CP_UTF8, 0, utf8, -1, NULL, 0);
if (len>1)
{
wchar_t *ptr = utf16.GetBuffer(len-1);
if (ptr) MultiByteToWideChar(CP_UTF8, 0, utf8, -1, ptr, len);
utf16.ReleaseBuffer();
}
return utf16;
}
'Microsoft > C++' 카테고리의 다른 글
Video 썸네일 추출하기 (0) | 2011.03.18 |
---|---|
Windows 화면보호기/절전모드 방지하기 (0) | 2011.02.07 |
RECENT COMMENT