Support UTF-8 Output on console

This commit is contained in:
Lord-Grey 2023-09-14 22:10:54 +02:00
parent 8c31e7822c
commit 8ecd25cb9f
3 changed files with 11 additions and 2 deletions

View File

@ -1,6 +1,6 @@
#pragma once
#define QSTRING_CSTR(str) str.toLocal8Bit().constData()
#define QSTRING_CSTR(str) str.toUtf8().constData()
typedef QList< int > QIntList;

View File

@ -269,7 +269,15 @@ bool SettingsManager::saveSettings(QJsonObject config, bool correct)
}
else
{
emit settingsChanged(settings::stringToType(key), QJsonDocument::fromJson(data.toLocal8Bit()));
QJsonParseError error;
QJsonDocument jsonDocument = QJsonDocument::fromJson(data.toUtf8(), &error);
if (error.error != QJsonParseError::NoError) {
Error(_log, "Error parsing JSON: %s", QSTRING_CSTR(error.errorString()));
rc = false;
}
else {
emit settingsChanged(settings::stringToType(key), jsonDocument);
}
}
}
}

View File

@ -15,4 +15,5 @@ void CreateConsole()
freopen_s(&fDummy, "CONOUT$", "w", stderr);
freopen_s(&fDummy, "CONIN$", "r", stdin);
SetConsoleTitle(TEXT("Hyperion"));
SetConsoleOutputCP(CP_UTF8);
}