diff options
| author | bunnei <bunneidev@gmail.com> | 2016-04-04 21:55:08 -0400 |
|---|---|---|
| committer | bunnei <bunneidev@gmail.com> | 2016-04-04 21:55:08 -0400 |
| commit | 9ddb84a7f26abc5890a3d47be40126e224c12d72 (patch) | |
| tree | 8112be75d7f65ced275221040231a0ca1ae4f415 /src/common/string_util.cpp | |
| parent | 9b0a189ab813c2df3f4d71c9955c958a94cbc317 (diff) | |
| parent | 26fb25e1060c1f98db9f034d5d0c427b225c2346 (diff) | |
Merge pull request #1620 from LFsWang/path
Fix filename&path encode problem on Windows
Diffstat (limited to 'src/common/string_util.cpp')
| -rw-r--r-- | src/common/string_util.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/common/string_util.cpp b/src/common/string_util.cpp index 6d6fc591fc..f0aa072db3 100644 --- a/src/common/string_util.cpp +++ b/src/common/string_util.cpp @@ -320,27 +320,27 @@ std::u16string UTF8ToUTF16(const std::string& input) #endif } -static std::string UTF16ToUTF8(const std::wstring& input) +static std::wstring CPToUTF16(u32 code_page, const std::string& input) { - auto const size = WideCharToMultiByte(CP_UTF8, 0, input.data(), static_cast<int>(input.size()), nullptr, 0, nullptr, nullptr); + auto const size = MultiByteToWideChar(code_page, 0, input.data(), static_cast<int>(input.size()), nullptr, 0); - std::string output; + std::wstring output; output.resize(size); - if (size == 0 || size != WideCharToMultiByte(CP_UTF8, 0, input.data(), static_cast<int>(input.size()), &output[0], static_cast<int>(output.size()), nullptr, nullptr)) + if (size == 0 || size != MultiByteToWideChar(code_page, 0, input.data(), static_cast<int>(input.size()), &output[0], static_cast<int>(output.size()))) output.clear(); return output; } -static std::wstring CPToUTF16(u32 code_page, const std::string& input) +std::string UTF16ToUTF8(const std::wstring& input) { - auto const size = MultiByteToWideChar(code_page, 0, input.data(), static_cast<int>(input.size()), nullptr, 0); + auto const size = WideCharToMultiByte(CP_UTF8, 0, input.data(), static_cast<int>(input.size()), nullptr, 0, nullptr, nullptr); - std::wstring output; + std::string output; output.resize(size); - if (size == 0 || size != MultiByteToWideChar(code_page, 0, input.data(), static_cast<int>(input.size()), &output[0], static_cast<int>(output.size()))) + if (size == 0 || size != WideCharToMultiByte(CP_UTF8, 0, input.data(), static_cast<int>(input.size()), &output[0], static_cast<int>(output.size()), nullptr, nullptr)) output.clear(); return output; |
