Merge pull request #6427 from JosJuice/thousandseparate-encoding

StringUtil: Fix Windows encoding in ThousandSeparate
This commit is contained in:
Pierre Bourdon 2018-03-10 13:16:00 +01:00 committed by GitHub
commit d72947d638
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 12 additions and 4 deletions

View File

@ -45,15 +45,23 @@ std::string StripQuotes(const std::string& s);
template <typename I> template <typename I>
std::string ThousandSeparate(I value, int spaces = 0) std::string ThousandSeparate(I value, int spaces = 0)
{ {
std::ostringstream oss; #ifdef _WIN32
std::wostringstream stream;
#else
std::ostringstream stream;
#endif
// std::locale("") seems to be broken on many platforms // std::locale("") seems to be broken on many platforms
#if defined _WIN32 || (defined __linux__ && !defined __clang__) #if defined _WIN32 || (defined __linux__ && !defined __clang__)
oss.imbue(std::locale("")); stream.imbue(std::locale(""));
#endif #endif
oss << std::setw(spaces) << value; stream << std::setw(spaces) << value;
return oss.str(); #ifdef _WIN32
return UTF16ToUTF8(stream.str());
#else
return stream.str();
#endif
} }
std::string StringFromBool(bool value); std::string StringFromBool(bool value);