Qt控制台程序输出中文字符的做法

假如是非utf8的常量字符串需要先转为utf8编码:

#include <iostream>
//设置执行字符集为utf8
#if defined(_MSC_VER) && (_MSC_VER >= 1600)  
# pragma execution_character_set("utf-8")  
#endif
 
int main(int argc, char *argv[])
{
	QCoreApplication a(argc, argv);
 
	setlocale(LC_CTYPE, "chs");
 	// 非utf8的常量字符串需要先转为utf8编码
	std::wcout << QString("好好学习").toStdWString()<< std::endl;
 
	getchar();
	return 1;
}

解决乱码有三个办法,第一个办法是编译时加入命令行参数,在 Qt 的 pro 文件中可以这样:

msvc:QMAKE_CXXFLAGS += -execution-charset:utf-8

第二个办法是在源文件中加入:

#pragma execution_character_set("utf-8")

VS2005、VS2008 这两个编译器都不支持 C++11,其他编译器支持 C++11

如果源代码保存为不带 BOM 的 utf-8。那需要告诉 VS2015 我们的编码格式是 utf-8,可以在 pro 文件中加入如下的代码:

msvc:QMAKE_CXXFLAGS += -source-charset:utf-8

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值