aboutsummaryrefslogtreecommitdiff
path: root/src/common/string_util.cpp
diff options
context:
space:
mode:
authorbunnei <bunneidev@gmail.com>2016-04-04 21:55:08 -0400
committerbunnei <bunneidev@gmail.com>2016-04-04 21:55:08 -0400
commit9ddb84a7f26abc5890a3d47be40126e224c12d72 (patch)
tree8112be75d7f65ced275221040231a0ca1ae4f415 /src/common/string_util.cpp
parent9b0a189ab813c2df3f4d71c9955c958a94cbc317 (diff)
parent26fb25e1060c1f98db9f034d5d0c427b225c2346 (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.cpp16
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;