• 6671阅读
  • 2回复

[讨论]求助,QT5.4中的中文输出是乱码! [复制链接]

上一主题 下一主题
离线冰凌
 

只看楼主 倒序阅读 楼主  发表于: 2015-04-02
  QT5.4加上           ”#pragma execution_character_set("utf-8")“            时           “  cout<<"请您输入0或1,选择数据(0-Oracle,1-SQLite):";             输出是乱码,不加        ”#pragma execution_character_set("utf-8")“        时          ”     qDebug()<<"SQLite数据库读取完毕!"<<endl;“            是乱码,求各位大神指教
离线dbzhang800

只看该作者 1楼 发表于: 2015-04-02
原因其实很简单,std::cout 只是简单的输出字节流,没有任何处理。

用 std::cout 输出非ASCII编码的字节流,本身就是不太负责的写法。即使没有 #pragma,也无法避免乱码问题。你可以保证你的程序在简体中文Windows下不乱码,但是也只能在简体中文Windows下乱码。


qDebug() 和 std::wcout 都能处理locale信息。所以不存在上述问题。
离线ji401

只看该作者 2楼 发表于: 2015-04-02
QString str=QString::fromLocal8Bit("中文乱码");
qDebug()<<str<<endl;“
QT5 中文乱码解决很麻烦,上面是我的解决方法。可以解决
快速回复
限100 字节
 
上一个 下一个