Используя Unreal Engine 4, я хочу загрузить файл с компьютера, который содержит такие символы, как “
, ”
, ‘
а также ’
,
Все попытки конвертации приводят к финалу FString
либо содержащий ?
на их месте или вообще без характера.
FString
класс внутренней строки UE4, который использует TCHAR
(wchar_t
), который использует кодировку UTF-16.
Даже отчаянные попытки использовать это потерпели неудачу:
std::replace(str.begin(), str.end(), L'“', L'\"');
Ничего не случилось.
Как я могу правильно конвертировать между std::string
для FString
?
Конвертировать ваши std::string
в std::wstring
как это также на основе wchar_t
и попробуйте инициализировать ваш FString
с этим.
Проверьте эту тему, если вы не знаете, как конвертировать в wstring
: c ++ не может преобразовать строку в wstring
Тогда вы можете сделать что-то вроде:
FString str = FString(your_wstring.c_str());
или же
FString str(your_wstring.c_str());
Вы также можете попробовать прочитать данные из файла прямо в wstring
или даже FString
потому что UE4 имеет свои собственные классы для управления файлами, например, FFileHelper
: http://api.unrealengine.com/INT/API/Runtime/Core/Misc/FFileHelper/index.html и я бы порекомендовал вам этот последний вариант 🙂
Других решений пока нет …