diff options
| author | JosJuice <josjuice@gmail.com> | 2020-06-28 18:22:18 +0200 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2020-07-08 14:51:35 +0200 |
| commit | 38791eec1879b0a66d6ae920cfd6b42d9ae66dee (patch) | |
| tree | 28289d5dd2f3a3bfdb3380bd629f8656c7fa01e2 /Source/Core/Common/StringUtil.cpp | |
| parent | 15d9fab0bbe5cae41116c7eb24dc1797f05957c1 (diff) | |
Common: Never convert from UCS-2 in WStringToUTF8
Probably not something we would run into in practice since
Windows uses a separate implementation, but let's do it
for the sake of correctness.
Diffstat (limited to 'Source/Core/Common/StringUtil.cpp')
| -rw-r--r-- | Source/Core/Common/StringUtil.cpp | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp index a8880d371b..e3c6f692f6 100644 --- a/Source/Core/Common/StringUtil.cpp +++ b/Source/Core/Common/StringUtil.cpp @@ -17,6 +17,7 @@ #include <locale> #include <sstream> #include <string> +#include <type_traits> #include <vector> #include <fmt/format.h> @@ -574,7 +575,10 @@ std::string UTF8ToSHIFTJIS(std::string_view input) std::string WStringToUTF8(std::wstring_view input) { - std::wstring_convert<std::codecvt_utf8<wchar_t>, wchar_t> converter; + using codecvt = std::conditional_t<sizeof(wchar_t) == 2, std::codecvt_utf8_utf16<wchar_t>, + std::codecvt_utf8<wchar_t>>; + + std::wstring_convert<codecvt, wchar_t> converter; return converter.to_bytes(input.data(), input.data() + input.size()); } |
