summaryrefslogtreecommitdiff
path: root/Source/Core/Common/StringUtil.cpp
diff options
context:
space:
mode:
authorJordan Woyak <jordan.woyak@gmail.com>2025-10-15 18:12:40 -0500
committerJordan Woyak <jordan.woyak@gmail.com>2025-11-02 00:36:04 -0500
commitda7c813edf729276093abc039d084014ce330096 (patch)
treef753493bd4bb788aad466eadb9657b3703177e17 /Source/Core/Common/StringUtil.cpp
parentb073b5303b3c5e84fb01cacaf761719e6ce92140 (diff)
StringUtil: Make non-Windows WStringToUTF8 implementation use iconv instead of deprecated std::codecvt features.
Diffstat (limited to 'Source/Core/Common/StringUtil.cpp')
-rw-r--r--Source/Core/Common/StringUtil.cpp8
1 files changed, 3 insertions, 5 deletions
diff --git a/Source/Core/Common/StringUtil.cpp b/Source/Core/Common/StringUtil.cpp
index 265679feb9..326a8e19eb 100644
--- a/Source/Core/Common/StringUtil.cpp
+++ b/Source/Core/Common/StringUtil.cpp
@@ -563,11 +563,9 @@ std::string UTF8ToSHIFTJIS(std::string_view input)
std::string WStringToUTF8(std::wstring_view input)
{
- 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());
+ // Note: Without LE iconv expects a BOM.
+ // The "WCHAR_T" code would be appropriate, but it's apparently not in every iconv implementation.
+ return CodeToUTF8((sizeof(wchar_t) == 2) ? "UTF-16LE" : "UTF-32LE", input);
}
std::string UTF16BEToUTF8(const char16_t* str, size_t max_size)