Qt_MSVC中文乱码问题

Qt MSVC版本的中文乱码问题

这里针对的是Qt5 MSVC版本,QT4 或者 mingW编译器可能不适用 (未测试)

  1. 如果程序中用到中文字符串,请将字符串用QStringLiteral() 这个宏括起来,但是编译仍然会出错
  2. 将包含中文的头文件源文件用记事本打开,以UTF-8的格式保存,然后编译,就解决了出错的问题,而且可以正常显示中文
  3. 总结:用记事本以UTF-8保存,可以解决编译出错问题,但界面会显示乱码,QStringLiteral宏可以解决显示乱码的问题。
  4. 这里讲述为什么用记事本打开,并保存:因为window记事本保存文件会自动在文件开头加上utf8 bom(byte order mask 字节顺序标记),但在类unix系统下,并不接受(抵制)bom,所以用linux上g++编译器不能编译以utf8 bom开头的文件,但MSVC使用的微软vc++14编译器在编译文件时如果文件是utf8格式,但是文件开头没有utf8 bom,反而会报错。
  5. 另一种方式可以更改Qt creator的utf-8 bom选项如下图:



这样我们就不用每次都使用记事本保存的方式来添加utf8 bom到文件开头了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值