ДМ
Дмитрий Морозов19 марта 2020 г. 4:04

qt c++ emoji

возникла проблема при парсинге ответа от telegramm api
поле text, содержит символы в utf8 (так говорит документация), но приходят и gemoji, которые хранятся в utf16, да ещё и комбинированном из 2-4 (возможно и больше) символов...

вот, как пример : "\ud83e\udddd\u200d\u2640"
QString str = str.fromUtf16() не помогает, точнее ещё на этапе сборки выдаёт ошибку "invalid universal character"

ps : это gemoji 🧝‍♀ (не уверен, что у вас тоже правильно отобразится, но это должена быть эльф-девушка)

Рекомендуем хостинг TIMEWEB
Рекомендуем хостинг TIMEWEB
Стабильный хостинг, на котором располагается социальная сеть EVILEG. Для проектов на Django рекомендуем VDS хостинг.

Вам это нравится? Поделитесь в социальных сетях!

4
Evgenii Legotckoi
  • 19 марта 2020 г. 4:35
  • (ред.)

У меня несколько мыслей на этот счёт:

  • ковырять сырой QByteArray и выкидывать все невалидные символы.
  • написать вопрос в саппорт телеграмма, почему у них проскакивает UTF16, хоть должен быть UTF8.

Далее

QString str = str.fromUtf16() не помогает, точнее ещё на этапе сборки выдаёт ошибку "invalid universal character"

Ну вы же понимаете, что это уже где-то ваша ошибка в коде и до этапа получения эмоджи из api даже не дошло. Ошибка может быть интепретирована только в контексте остального кода, а не одной единственной строчки.

    ДМ
    • 19 марта 2020 г. 4:43

    даже если просто в main объявлять и инициализировать следующими способами - выдаёт ошибку :
    QString str = QString::fromUtf16("\ud83e\udddd\u200d\u2640");
    или
    QByteArray b_array("\ud83e\udddd\u200d\u2640");

      Evgenii Legotckoi
      • 19 марта 2020 г. 4:48

      Тогда попробуйте конверсию через макросы создания строк

      QString str = QStringLiteral("\ud83e\udddd\u200d\u2640");

        ДМ
        • 19 марта 2020 г. 4:55

        увы, таже ошибка "invalid universal character"

          Комментарии

          Только авторизованные пользователи могут публиковать комментарии.
          Пожалуйста, авторизуйтесь или зарегистрируйтесь
          AD

          C++ - Тест 004. Указатели, Массивы и Циклы

          • Результат:50баллов,
          • Очки рейтинга-4
          m
          • molni99
          • 26 октября 2024 г. 1:37

          C++ - Тест 004. Указатели, Массивы и Циклы

          • Результат:80баллов,
          • Очки рейтинга4
          m
          • molni99
          • 26 октября 2024 г. 1:29

          C++ - Тест 004. Указатели, Массивы и Циклы

          • Результат:20баллов,
          • Очки рейтинга-10
          Последние комментарии
          i
          innorwall13 ноября 2024 г. 23:03
          Как написать игру на Qt - Урок 3. Взаимодействие с другими объектами what is priligy tablets What happens during the LASIK surgery process
          i
          innorwall13 ноября 2024 г. 20:09
          Использование переменных объявленных в CMakeLists.txt внутри C++ файлов where can i buy priligy online safely Tom Platz How about things like we read about in the magazines like roid rage and does that really
          i
          innorwall11 ноября 2024 г. 22:12
          Django - Урок 055. Как написать функционал auto populate field Freckles because of several brand names retin a, atralin buy generic priligy
          i
          innorwall11 ноября 2024 г. 18:23
          QML - Урок 035. Использование перечислений в QML без C++ priligy cvs 24 Together with antibiotics such as amphotericin B 10, griseofulvin 11 and streptomycin 12, chloramphenicol 9 is in the World Health Organisation s List of Essential Medici…
          i
          innorwall11 ноября 2024 г. 15:50
          Qt/C++ - Урок 052. Кастомизация Qt Аудио плеера в стиле AIMP It decreases stress, supports hormone balance, and regulates and increases blood flow to the reproductive organs buy priligy online safe Promising data were reported in a PDX model re…
          Сейчас обсуждают на форуме
          i
          innorwall13 ноября 2024 г. 18:52
          добавить qlineseries в функции PMID 35774217 Free PMC article priligy cvs
          i
          innorwall11 ноября 2024 г. 10:55
          Всё ещё разбираюсь с кешем. priligy walgreens levitra dulcolax carbs The third ring was found to be made up of ultra relativistic electrons, which are also present in both the outer and inner rings
          9
          9Anonim25 октября 2024 г. 9:10
          Машина тьюринга // Начальное состояние 0 0, ,<,1 // Переход в состояние 1 при пустом символе 0,0,>,0 // Остаемся в состоянии 0, двигаясь вправо при встрече 0 0,1,>…
          ИМ
          Игорь Максимов3 октября 2024 г. 4:05
          Реализация навигации по разделам Спасибо Евгений!

          Следите за нами в социальных сетях