| 1414 | } |
| 1415 | |
| 1416 | std::wstring ArchWindowsUtf8ToUtf16(const std::string &str) |
| 1417 | { |
| 1418 | if (str.empty()) return std::wstring(); |
| 1419 | // first call is only to get required size for wstring |
| 1420 | int size = MultiByteToWideChar( |
| 1421 | CP_UTF8, 0, str.data(), (int)str.size(), NULL, 0); |
| 1422 | if (size == 0) return std::wstring(); |
| 1423 | std::wstring wstr(size, 0); |
| 1424 | if(MultiByteToWideChar( |
| 1425 | CP_UTF8, 0, str.data(), (int)str.size(), &wstr[0], size) == 0) { |
| 1426 | return std::wstring(); |
| 1427 | } |
| 1428 | return wstr; |
| 1429 | } |
| 1430 | |
| 1431 | #endif |
| 1432 | |