diff options
-rw-r--r-- | src/lib/util/unicode.cpp | 8 | ||||
-rw-r--r-- | src/lib/util/unicode.h | 4 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/util/unicode.cpp b/src/lib/util/unicode.cpp index 3b6f665f63a..ce917ec30aa 100644 --- a/src/lib/util/unicode.cpp +++ b/src/lib/util/unicode.cpp @@ -454,14 +454,14 @@ int utf16f_from_uchar(char16_t *utf16string, size_t count, char32_t uchar) // wstring_from_utf8 //------------------------------------------------- -std::wstring wstring_from_utf8(const std::string &utf8string) +std::wstring wstring_from_utf8(std::string_view utf8string) { #ifdef _WIN32 // for some reason, using codecvt yields bad results on MinGW (but not MSVC) return osd::text::to_wstring(utf8string); #else std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; - return converter.from_bytes(utf8string); + return converter.from_bytes(string.data(), string.data() + string.length()); #endif } @@ -470,14 +470,14 @@ std::wstring wstring_from_utf8(const std::string &utf8string) // utf8_from_wstring //------------------------------------------------- -std::string utf8_from_wstring(const std::wstring &string) +std::string utf8_from_wstring(std::wstring_view string) { #ifdef _WIN32 // for some reason, using codecvt yields bad results on MinGW (but not MSVC) return osd::text::from_wstring(string); #else std::wstring_convert<std::codecvt_utf8<wchar_t>> converter; - return converter.to_bytes(string); + return converter.to_bytes(string.data(), string.data() + string.length()); #endif } diff --git a/src/lib/util/unicode.h b/src/lib/util/unicode.h index d6f577289c4..761c809595c 100644 --- a/src/lib/util/unicode.h +++ b/src/lib/util/unicode.h @@ -68,8 +68,8 @@ int utf16_from_uchar(char16_t *utf16string, size_t count, char32_t uchar); int utf16f_from_uchar(char16_t *utf16string, size_t count, char32_t uchar); // converting UTF-8 strings to/from "wide" strings -std::wstring wstring_from_utf8(const std::string &utf8string); -std::string utf8_from_wstring(const std::wstring &string); +std::wstring wstring_from_utf8(std::string_view utf8string); +std::string utf8_from_wstring(std::wstring_view string); // unicode normalization std::string normalize_unicode(const char *s, unicode_normalization_form normalization_form, bool fold_case = false); |