写了两个UNICODE ANSI转换函数,希望对初次接触UNICODE的朋友有帮助.
void UnicodeToAnsi(WCHAR* lpString,char *szAnsi)
{
size_t len = wcslen(lpString)*2;
char *buf = (char *)malloc(len);
size_t i = wcstombs(buf,lpString,len);
strcpy(szAnsi,buf);
free(buf);
}
void AnsiTounicode(LPCSTR lpString,WCHAR * lpUni)
{
PWSTR pWideCharStr; // 指向UNICODE字符串的指针
int nLenOfWideCharStr; // UNICODE字符串的长度
// 获取ANSI字符串的长度
nLenOfWideCharStr = MultiByteToWideChar(CP_ACP, 0, lpString, -1, NULL, 0);
pWideCharStr = (PWSTR)HeapAlloc(GetProcessHeap(), 0, nLenOfWideCharStr * sizeof(WCHAR));
// 转换ANSI字符串为UNICODE字符串
MultiByteToWideChar(CP_ACP, 0, lpString, -1, pWideCharStr, nLenOfWideCharStr);
wcscpy(lpUni,pWideCharStr);
// 释放分配的字符串
HeapFree(GetProcessHeap(), 0, pWideCharStr);
}
本文提供了两个用于Unicode和ANSI编码之间相互转换的函数。UnicodeToAnsi函数将Unicode字符串转换为ANSI字符串,而AnsiTounicode函数则实现相反的功能。这些函数对于需要处理不同编码格式的应用程序特别有用。
3284

被折叠的 条评论
为什么被折叠?



