专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > QT开发

QString str1("小弟我")-正确;QString str2("小弟我小弟我") - 异常

发布时间:2010-05-30 19:47:29 文章来源:www.iduyao.cn 采编人员:星星草
QString str1("我")--正确;QString str2("我我") -- 错误
使用QString定义一个中文字符串,发现了很无语的问题,能否识别汉字竟然与汉字的个数有关!!!
我使用的是qt-creator,编译器是Microsoft Visual C++ Compiler 10.0 (MSCV)。
查看creator编辑->选择编码,里面默认UTF-8编码。
#include "widget.h"
#include <QApplication>
#include <QTextCodec>

int main(int argc, char *argv[])
{
    QTextCodec::setCodecForLocale(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GBK"));
    QTextCodec::setCodecForTr(QTextCodec::codecForName("GBK"));

//    QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF-8"));
//    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
//    QTextCodec::setCodecForTr(QTextCodec::codecForName("UTF-8"));

    //QString str1("我");           // error, C2001:newline in constant
    //QString str2("我我");         // OK
    //QString str3("我我我");        // error
    //QString str4("我我我我");       // OK
    //QString str5("我我我我我");     // error
    //QString str6("我我我我我我");   // OK

    QApplication a(argc, argv);
    Widget w;
    w.show();
    
    return a.exec();
}

QString定义英文肯定是没有问题的,为了定义中文,按照网上的结果,设置编码格式,分别尝试过UTF-8和GBK。当输入的中文个数不同时,结果也不同,详细见代码!奇数个汉字全部报错了,偶数个函数全部通过编译!!!
请问这是怎么回事?!
------解决思路----------------------
你这是Qt 4啊。
看CSDN上dbzhang800的博客吧。
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: