wchar_t* AnsiToUnicode(const char* str) { int textlen; wchar_t *result; textlen = MultiByteToWideChar(CP_ACP, 0, str, -1, NULL, 0); result = (wchar_t *)malloc((textlen + 1) * sizeof(wchar_t)); memset(result, 0,(textlen + 1) * sizeof(wchar_t)); MultiByteToWideChar(CP_ACP, 0, str, -1, result, textlen); return result; }
char* UnicodeToUTF8(const wchar_t* str) { char *result; int textlen; textlen = WideCharToMultiByte(CP_UTF8, 0, str, -1, NULL, 0, NULL, NULL); result =(char *)malloc((textlen + 1) * sizeof(char)); memset(result, 0, sizeof(char) * (textlen + 1)); WideCharToMultiByte(CP_UTF8, 0, str, -1, result, textlen, NULL, NULL); return result; }
char *AnsiToUTF8(const char* str) { wchar_t *lpUnicode = ANSIToUnicode(str); char *lpUtf8 = UnicodeToUTF8(lpUnicode); free(lpUnicode); return lpUtf8; }