Используя Unreal Engine 4, я хочу загрузить с машины файл, который содержит такие символы, как “
, ”
, ‘
и ’
.
Все попытки преобразования приводят к тому, что окончательный FString
либо содержит вместо ?
символ, либо вообще не содержит символа.
FString
- это внутренний строковый класс UE4, который использует TCHAR
(wchar_t
), который использует кодировку UTF-16.
Даже отчаянные попытки использовать это не увенчались успехом:
std::replace(str.begin(), str.end(), L'“', L'\"');
Ничего не произошло.
Как правильно преобразовать std::string
в FString
?
std::string
. Использует ли он UTF-8 или системный языковой стандарт? Вы не можете преобразовать его, не ответив сначала. Но когда вы все-таки конвертируете, вы можете использовать переносимые функции STL, такие какstd::wstring_convert()
илиmbsrtowcs()
, или библиотеки Unicode, такие как ICONV или ICU, или специфичные для платформы функции, такие какMultiByteToWideChar()
в Windows и т. Д. - person Remy Lebeau   schedule 13.06.2018