查看完整版本: [-- QT 5 中文乱码是硬伤 --]

QTCN开发网 -> Qt中文处理 -> QT 5 中文乱码是硬伤 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

yleesun 2015-10-24 14:58

QT 5 中文乱码是硬伤

之前QT4还可以通过

QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));
解决中文乱码问题,但是QT5却对以上函数中的两个已经不支持。很多人说可以用宏:QStringLiteral("中文")或者QString::fromLocal8Bit(“中文”)都没法解决问题。
有时奇数个中文报语法错误,有时偶数个中文报语法错误。
error C2001: 常量中有换行符


有没有彻底的解决办法?QT5这么还不如QT4用着顺手呢?


yanwuyue 2015-10-25 10:12
Qt就是不想让乱用QTextCodec这几个函数,下了狠招,干脆就取消,
中文乱码不能怪qt,主要是VS比较贱,而且可以说故意留下的BUG
(想不明白这的多少年,都不彻底解决,只能说故意的了),
明白这的就清楚了问题一个从VS下手而不是Qt,
我是用VS2013,其它版本也类似,但也不太一样,基本上要升级up1之类的
VS2013算支持比较好的

1.源代码必须UTF-8(这也是问题关键)
2.代码中加入
  1. #if defined(_MSC_VER) && (_MSC_VER >= 1600)
    #pragma execution_character_set("utf-8")
    #endif


其它版本,搜索Google:VSxxxx UTF-8 中文

liulin188 2015-10-26 13:07
中文没问题,是楼主处理不好


查看完整版本: [-- QT 5 中文乱码是硬伤 --] [-- top --]



Powered by phpwind v8.7 Code ©2003-2011 phpwind
Gzip disabled