c++ 用GetCommandLine() 获取命令行参数中文乱码
发布网友
发布时间:2022-05-26 10:44
我来回答
共1个回答
热心网友
时间:2023-10-13 13:31
// 注意这个函数不支持中文,因为没有将GBK编码转UTF,网上找GBKtoUTF8
string GBKToUTF8(const std::string& strGBK)
{
string strOutUTF8 = "";
WCHAR * str1;
int n = MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, NULL, 0);
str1 = new WCHAR[n];
MultiByteToWideChar(CP_ACP, 0, strGBK.c_str(), -1, str1, n);
n = WideCharToMultiByte(CP_UTF8, 0, str1, -1, NULL, 0, NULL, NULL);
char * str2 = new char[n];
WideCharToMultiByte(CP_UTF8, 0, str1, -1, str2, n, NULL, NULL);
strOutUTF8 = str2;
delete[]str1;
str1 = NULL;
delete[]str2;
str2 = NULL;
return strOutUTF8;
}追问我之前也找过很多 GBKtoUTF8的代码 都不行呀 你这个还是用不了呀!还是很多乱码的!