В Windows печать UTF-8 на консоль не выполняется автоматически.Сначала необходимо выполнить эту команду в консоли, чтобы перейти на кодовую страницу 65001 (которая является кодовой страницей UTF-8 Windows):
chcp 65001
Вам также необходимо установить шрифт, который предлагает китайские символы.В Windows 10 это шрифт «NSimSun».Тем не менее, консоль Windows имеет удобную функцию, которая автоматически переключает шрифт, если вы установите китайскую кодовую страницу (например, 936).Таким образом, вы можете программно запускать эти команды, используя стандартную библиотеку system()
.Хотя команда chcp
производит вывод.Чтобы скрыть это, перенаправьте вывод в nul
.
#include <cstdlib>
// ...
int main(int argc, char *argv[])
{
#ifdef Q_OS_WIN
// Temporary codepage change so we get an automatic font change.
system("chcp 936 > nul");
// Change to UTF-8.
system("chcp 65001 > nul");
#endif
QApplication a(argc, argv);
QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
QString strMessage = QString::fromUtf8("我是UTF8编码的文件:");
qDebug() << strMessage;
return a.exec();
}
(В качестве примечания следует использовать QString::fromUtf8()
, поскольку вы знаете, что текст в UTF-8.)