| | |
| | | #ifdef _MSC_VER |
| | | // convert to the local ansi page |
| | | static std::string UTF8ToLocaleAnsi(const std::string& strUTF8) { |
| | | int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, NULL, 0); |
| | | int len = MultiByteToWideChar(CP_UTF8, 0, strUTF8.c_str(), -1, nullptr, 0); |
| | | unsigned short*wszGBK = new unsigned short[len + 1]; |
| | | memset(wszGBK, 0, len * 2 + 2); |
| | | MultiByteToWideChar(CP_UTF8, 0, (LPCCH)strUTF8.c_str(), -1, (LPWSTR)wszGBK, len); |
| | | |
| | | len = WideCharToMultiByte(CP_ACP, 0, (LPCWCH)wszGBK, -1, NULL, 0, NULL, NULL); |
| | | len = WideCharToMultiByte(CP_ACP, 0, (LPCWCH)wszGBK, -1, nullptr, 0, nullptr, nullptr); |
| | | char *szGBK = new char[len + 1]; |
| | | memset(szGBK, 0, len + 1); |
| | | WideCharToMultiByte(CP_ACP, 0, (LPCWCH)wszGBK, -1, szGBK, len, NULL, NULL); |
| | | WideCharToMultiByte(CP_ACP, 0, (LPCWCH)wszGBK, -1, szGBK, len, nullptr, nullptr); |
| | | std::string strTemp(szGBK); |
| | | delete[]szGBK; |
| | | delete[]wszGBK; |