QString fprintf乱码问题

首先,文件要以utf8编码,然后,指定编译器用utf8编码,例如vc的:

win32-msvc* {
QMAKE_CXXFLAGS += /utf-8
}

最后,看代码即可输出中文:

void MainWindow::on_pushButton_clicked()
{
    qDebug("this is qDebug 中文");
 
    QString ab("this is debugStr 中文");
    OutputDebugString(reinterpret_cast<const wchar_t *>(ab.utf16()));
 
    QString ac = "qstring 中文";
    fprintf(stderr,"%s\n",ac.toLocal8Bit().data());
 
    std::string rawstr = QString::fromUtf8("raw 中文").toLocal8Bit().constData();
 
    fprintf(stderr,"%s\n",rawstr.c_str());
}


注意,

OutputDebugString

只打印到debugger的控制台,不会打印到cmd dos窗口。

本文为3YL原创,转载无需联系,但请注明来自labisart.com。

原创文章不易,如果觉得有帮助,可打赏或点击右侧广告支持:

查看打赏记录

发表评论请遵守党国法律!后台审核后方可显示!
  • 最新评论
  • 总共0条评论
  • Blog v1.1© 2024 labisart.com 版权所有 | 联系:labartwork@163.com