Неправильный вывод qDebug() (UTF - 8)
Я пытаюсь сохранить строку со специальными символами::
qDebug() << "ÑABCgÓ";
Выходы: (здесь я даже не могу набрать правильный вывод, что после Ã & Ã отсутствует мусор) ÃABCgÃ
Я подозреваю, что некоторые UTF-8 / Latin1 / ASCII, но не могу найти настройки для вывода на консоль / файл. Что я написал в своем коде: "С ABCg".
(Qt: 4.8.5 / Ubunto 12.04 / C++ 98)
2 ответа
Вы могли бы использовать QString QString::fromUtf8(const char * str, int size = -1) [static]
как пример кода представляет это ниже. Это одна из главных причин существования QString.
Подробности смотрите в документации:
http://qt-project.org/doc/qt-5.1/qtcore/qstring.html
main.cpp
#include <QString>
#include <QDebug>
int main()
{
qDebug() << QString::fromUtf8("ÑABCgÓ");
return 0;
}
Сборка (настроить под свой сценарий)
g++ -fPIC -I/usr/include/qt -I/usr/include/qt/QtCore -lQt5Core main1000.cpp && ./a.out
Выход
"ÑABCgÓ"
Это, как говорится, в зависимости от вашего региона, просто qDebug() << "ÑABCgÓ";
может работать так же, как здесь, но рекомендуется убедиться, явно задавая UTF-8.
Попробуй это:
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForCStrings(codec);
qDebug() << "ÑABCgÓ";