QT: вывод кириллицы через qDebug()
На самом деле, нужно было упаковать и распаковать стандартными функциями QByteArray с кириллицей, а оказалось, что кириллица в qDebug() "не идёт", хотя теоретически всё в кодировке UTF-8 же?
Оказалось, всё дело в setlocale. После её вызова в QT 5.10.1 вот такая штука работает прекрасно, тип проекта - "Консольное приложение QT":
#include <QtCore> int main() { setlocale(LC_ALL, ""); QByteArray text = "Текст"; QByteArray compressed = qCompress(text); qDebug() << compressed; //выводим сжатый текст qDebug() << QString::fromUtf8(qUncompress(compressed)); //и разжатый qDebug() << QString("проверка кириллицы"); return 0; }
"Обычный" вывод кириллической строки QString тоже работает.
И ещё - конкретно в версии QT 5.5 есть вот такая проблема с qDebug() (вывод не-латиницы как кодов Юникода, а не символов), в более поздних сборках это изменение откатили назад.
25.03.2019, 16:53 [2739 просмотров]