Преобразование std :: string в FString (TCHAR / wstring) со специальными символами

Используя Unreal Engine 4, я хочу загрузить файл с компьютера, который содержит такие символы, как , , а также ,

Все попытки конвертации приводят к финалу FString либо содержащий ? на их месте или вообще без характера.

FString класс внутренней строки UE4, который использует TCHAR (wchar_t), который использует кодировку UTF-16.

Даже отчаянные попытки использовать это потерпели неудачу:

std::replace(str.begin(), str.end(), L'“', L'\"');

Ничего не случилось.

Как я могу правильно конвертировать между std::string для FString?

0

Решение

Конвертировать ваши 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 и я бы порекомендовал вам этот последний вариант 🙂

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]