QTextCodec中的setCodecForTr等终于消失了 (Qt5)

来源:互联网 发布:大数据北京培训机构 编辑:程序博客网 时间:2024/05/29 10:54
  • 在Qt4中,国内很多新手都喜欢——不分青红皂白地使用如下3行代码

QTextCodec::setCodecForTr(...)QTextCodec::setCodecForCStrings(...)QTextCodec::setCodecForLocale(...)

尽管之前零零散散写过一点这方面的内容,比如

  • QString 与中文问题

  • Qt中translate、tr关系 与中文问题

  • Qt国际化(源码含中文时)的点滴分析

但是,敢死队员还是一批一批的 ... 让人少多有些无奈

症结?

在国内,之所以用很多人用这3行代码,是因为他们在源代码的const char*这种窄字符串中使用了中文。

然后,发现。不对啊,咋全是乱码呢?于是上网搜索,发现其他人用的这3行代码

于是,加上试试。发现:在自己的当前环境下(固定系统、固定地区语言设置、固定编译环境)还真的没有乱码了。

于是乎?完全不考虑那3行代码的作用了,反正自己能用就行了,管它什么副作用呢!!

Qt5

在Qt5中,这个问题终于不复存在了,因为

这两个函数

QTextCodec::setCodecForTr(...)QTextCodec::setCodecForCStrings(...)

被直接去掉了。

这样一来,受影响的直接是如下代码了:

QString s1 = "我是中文";QString s2("我是中文");QString s3 = QObject::tr("我是中文")

详细的内容请看以下的网址:
转载自:
http://blog.csdn.net/dbzhang800/article/details/7325698


0 0
原创粉丝点击