utf8mb4 кодировать / декодировать в C++
Сервер третьей части передает строку моей клиентской программе, которая содержит как данные utf8, так и эмодзи в кодировке Unicode (перечислены здесь). например:
Некоторое время я гуглил и обнаружил, что это называется utf8mb4 кодировкой, которая используется в приложении SQL.
Я нахожу статью об utf8mb4 в mysql/python/ruby /etc... но нет C++. Есть ли библиотека C++, которая может делать кодирование / декодирование utf8mb4?
1 ответ
MySQL вызывает utf8mb4, что на самом деле utf8:
Набор символов с именем utf8 использует максимум три байта на символ и содержит только символы BMP. Начиная с MySQL 5.5.3, набор символов utf8mb4 использует максимум четыре байта на символ, поддерживает дополнительные символы:
поэтому любая библиотека, которая поддерживает utf8, даст вам utf8mb4. В этом вопросе был задан вопрос о том, какие решения существуют в C++ для преобразования в / из utf8: как работать с UTF-8 в C++, преобразование из других кодировок в UTF-8. Три решения приведены ICU (Международные компоненты для Unicode), Boost.Locale и C++11.