int ANSIToUTF8(char *pszCode, char *UTF8code)
{
WCHAR Unicode[100]={0,};
char utf8[100]={0,};
// char Lenth 읽어 오기
int nUnicodeSize = MultiByteToWideChar(CP_ACP, 0, pszCode, strlen(pszCode), Unicode, sizeof(Unicode));
// UTF-8 Lenth 읽어 오기
int nUTF8codeSize = WideCharToMultiByte(CP_UTF8, 0, Unicode, nUnicodeSize, UTF8code, sizeof(Unicode), NULL, NULL);
// UTF-8 변환
MultiByteToWideChar(CP_UTF8, 0, utf8, nUTF8codeSize, Unicode, sizeof(Unicode));
return nUTF8codeSize;
}
char* UTF8ToANSI(char *pszCode)
{
BSTR bstrWide;
char* pszAnsi;
int nLength;
// bstrWide 배열 생성 Lenth를 읽어 온다.
nLength = MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlen(pszCode) + 1, NULL, NULL);
// bstrWide 메모리 설정
bstrWide = SysAllocStringLen(NULL, nLength);
MultiByteToWideChar(CP_UTF8, 0, pszCode, lstrlen(pszCode) + 1, bstrWide, nLength);
// char 배열 생성전 Lenth를 읽어 온다.
nLength = WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, NULL, 0, NULL, NULL);
// pszAnsi 배열 생성
pszAnsi = new char[nLength];
// char 변환
WideCharToMultiByte(CP_ACP, 0, bstrWide, -1, pszAnsi, nLength, NULL, NULL);
// bstrWide 메모리 해제
SysFreeString(bstrWide);
return pszAnsi;
}
댓글 없음:
댓글 쓰기