Как получить символ Unicode из QString? - PullRequest
0 голосов
/ 21 марта 2020

так что, надеюсь, это проще, чем я это представляю. Я читаю данные JSON в мое приложение, и запись появляется как QString "\uf103", которая фактически представлена ​​символами '\\', 'u', 'f', '1', '0', и '3'. Как бы я на самом деле преобразовать это в Unicode символ, представленный кодом \uf103? Я прошел через несколько потоков, которые, кажется, задают похожие вопросы, но ни один из них не имеет прямого ответа.

Для контекста, я просто пытаюсь отобразить этот символ как текст кнопки.

Моя процедура синтаксического анализа выглядит следующим образом:

    QString infoPath = QDir::currentPath() + "/resources/fonts/fontawesome/unicode_info.json";
    QJsonObject fontAwesome = JsonReader(infoPath).getContentsAsJsonObject();

    QString fa = JsonReader::getJsonValueAsQString(fontAwesome);
    if (!fontAwesome.contains(fontAwesomeIcon)) {
        qDebug() << "Error, font awesome icon not found";
#ifdef DEBUG_MODE
        throw("Error, font awesome icon not found");
#endif
    }
    QString unicode = fontAwesome.value(fontAwesomeIcon).toObject().value("unicode").toString();

Строка unicode представляет интерес для нас. Оригинальный JSON выглядит так, только больше:

{"500px": {"unicode": "\\uf26e", "styles": ["brands"], "label": "500px"}, "accessible-icon": {"unicode": "\\uf368", "styles": ["brands"], "label": "Accessible Icon"}, "accusoft": {"unicode": "\\uf369", "styles": ["brands"], "label": "Accusoft"}, "acquisitions-incorporated": {"unicode": "\\uf6af", "styles": ["brands"], "label": "Acquisitions Incorporated"}}

Итак, проблема в том, что я начинаю с двойной косой черты. Я открыт для метода предварительной обработки этого JSON в python, если есть способ получить символы Юникода таким способом.

1 Ответ

0 голосов
/ 21 марта 2020

Я решил это с шагом обработки python, запустив следующую строку для каждой строки c проблемы:

problem_string = "\\u2095"
good_string = bytes(problem_string}, "ascii").decode('unicode-escape'), 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...