Merge pull request #6188 from JosJuice/stringutil-cleanup

StringUtil cleanup
This commit is contained in:
Leo Lam 2017-11-11 23:24:48 +01:00 committed by GitHub
commit 9a2745a977
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -410,24 +410,6 @@ void StringPopBackIf(std::string* s, char c)
#ifdef _WIN32
std::string UTF16ToUTF8(const std::wstring& input)
{
auto const size = WideCharToMultiByte(CP_UTF8, 0, input.data(), static_cast<int>(input.size()),
nullptr, 0, nullptr, nullptr);
std::string 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))
{
output.clear();
}
return output;
}
std::wstring CPToUTF16(u32 code_page, const std::string& input)
{
auto const size =
@ -470,6 +452,11 @@ std::wstring UTF8ToUTF16(const std::string& input)
return CPToUTF16(CP_UTF8, input);
}
std::string UTF16ToUTF8(const std::wstring& input)
{
return UTF16ToCP(CP_UTF8, input);
}
std::string SHIFTJISToUTF8(const std::string& input)
{
return UTF16ToUTF8(CPToUTF16(CODEPAGE_SHIFT_JIS, input));
@ -569,11 +556,7 @@ std::string UTF8ToSHIFTJIS(const std::string& input)
std::string UTF16ToUTF8(const std::wstring& input)
{
std::string result = CodeToUTF8("UTF-16LE", input);
// TODO: why is this needed?
result.erase(std::remove(result.begin(), result.end(), 0x00), result.end());
return result;
return CodeToUTF8("UTF-16LE", input);
}
#endif