问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

为什么qt中用printf打印的汉字是乱码?怎么解决?

发布网友 发布时间:2022-04-14 20:52

我来回答

2个回答

懂视网 时间:2022-04-15 01:13

简单的说,从Qt5开始,源代码就是默认UTF8编码的。

当然,VC2010编辑器对带BOM的UTF8也是认识,只可惜VC2010编译器根本承认它是UTF8!

在继续看官方论坛的回复:

You can write a simple example like this

  1. You can write a simple example like this
  2. #include
  3. #include
  4. #if _MSC_VER >= 1600
  5. #pragma execution_character_set("utf-8")
  6. #endif
  7. int main(int argc, char *argv[])
  8. {
  9. QApplication a(argc, argv);
  10. QLabel label("???ó??ń??");
  11. label.show();
  12. return a.exec();
  13. }
  14. If other people can reproduce your problem, you can file a bug.

If other people can reproduce your problem, you can file a bug.

较完整的解决方案(增加了Qt4/Qt5和非VC环境的判断):

  1. // Coding: UTF-8(BOM)
  2. #if defined(_MSC_VER) && (_MSC_VER >= 1600)
  3. # pragma execution_character_set("utf-8")
  4. #endif
  5. #include
  6. #include
  7. #include
  8. int main(int argc, char* argv[])
  9. {
  10. QApplication app(argc, argv);
  11. #if QT_VERSION < QT_VERSION_CHECK(5,0,0)
  12. #if defined(_MSC_VER) && (_MSC_VER < 1600)
  13. QTextCodec::setCodecForTr(QTextCodec::codecForName("GB18030-0"));
  14. #else
  15. QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));
  16. #endif
  17. #endif
  18. QLabel *label = new QLabel(QObject::tr("你好!"));
  19. label->show();
  20. return app.exec();
  21. }

另外:Qt4/Qt5/Linux: 只要是默认的UTF8环境, 应该都没问题

其实这个问题不是Qt特有的, 追根溯源还是C/C++和编译器的问题.即使是支持UTF16的Java也同样难逃此问题。

热心网友 时间:2022-04-14 22:21

检查一下开发环境和命令行窗口的字符集是否一致,应该可以在开发环境中进行设置。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 呼伦贝尔油玉不绝电子商务有限公司怎么样? 江苏新广联科技股份有限公司怎么样? 买了一个移动音箱,电源电压是DC5V的,一头是USB接口的,这个接口能直接用手机充电器插头连接电源吗 手机充电器用于音箱 北京慧云凌通科技有限公司怎么样? 手机5v充电器合适给usb小音箱供电吗 江苏省高科技产业投资股份有限公司怎么样? 前海慧云科技有限公司怎么样? 蓝牙音响可以用手机充电器充吗? 江苏亿友慧云软件股份有限公司南京分公司怎么样? 新生儿做CT有什么影响吗 新生儿做CT 上海慧云信息科技有限公司怎么样? 高压氧对新生儿有副作用吗?脑部ct对新生儿有副作用吗? 南京童创慧云信息科技有限公司怎么样? 梅西的标志是阿迪设计的吗 两岁的宝宝做脑ct都是平扫有什么危害怎么可以消除 KEY社问题 新生儿做ct的危害有哪些 宜兴市慧云智能科技有限公司怎么样? 慧云科技股份有限公司怎么样? 北京中科慧云科技有限公司怎么样? 用january造一个英文句子 河南慧云信息科技有限公司怎么样? 小学退休老师退休后在到学校任教怎样介绍一下自己? 1到12月的英语句子? 江苏嗨购网络科技股份有限公司怎么样? 广联达科技股份有限公司江苏分公司怎么样? 小学六年级英语题目 建人高复怎样? 炸300克薯条放多少淀粉 真心求助,我想找一个老师,但除了名字什么也不知道,怎样才能找到她? 开学对新老师的印象怎么写啊 炸薯条得做法? 2013开学第一课的主要内容是什么 帮忙翻译一下阿~~谢谢!!! 毕业半年了!还在玩!我该怎么办。 作文退休教师的母亲 如何投诉114? 垃圾短信举报号码是多少 如何屏蔽手机的垃圾短信?