Visual C++中宽字节与多字节字符互相转换的方法
多字节转宽字节
1 #include<Windows.h> 2 3 wchar_t* MultiCharToWideChar(char* str) 4 { 5 auto len = MultiByteToWideChar(CP_ACP, 0, str, strlen(str), NULL, 0); 6 wchar_t *buffer = new wchar_t[len + 1]; 7 MultiByteToWideChar(CP_ACP, 0, str, strlen(str), buffer, len); 8 buffer[len] = '\0'; 9 return buffer; 10 }
宽字节转多字节
1 #include<Windows.h> 2 3 char* WideCharToMultiChar(TCHAR* str) 4 { 5 auto len = WideCharToMultiByte(CP_ACP, 0, str, lstrlen(str), NULL, 0, NULL, NULL); 6 char *buffer = new char[len + 1]; 7 WideCharToMultiByte(CP_ACP, 0, str, lstrlen(str), buffer, len, NULL, NULL); 8 buffer[len] = '\0'; 9 return buffer; 10 }