Qt 国标GB2312转Unicode 编码,QTextCodec.toUnicode()该注意什么问题???



    1. toUnicode 该怎么用怎么报错??
      0_1470736266741_code00.png

    0_1470736283184_code01.png



  • 为什么要用GB2312。。。
    QTextCodec::codecForName()这个函数貌似区分大小写,不行的话就用GBK



  • @MOMO 要大小写的,可能gb 要专为 GB,另外UTF-8中的UTF三个字母都是大写。



  • @jiangcaiyang123 改了, 写错了,小写碰运气也能匹配(:surfer: )
    //1. Unicode 0x554a 能转 GB2312 0xb0a1

    qDebug()<<code;
    //m_code = QTextCodec::codecForName("GB2312");
    if(m_code){
    QByteArray ba= m_code->fromUnicode(&QChar(code),1);
    //起始GBK
    QDataStream ds(ba);
    ds>>m_startCode;
    }
    qDebug("%x:%x",code,m_startCode);

    //2. GB2312 0xb0a1 转出来的Unicode 怎么还是 0xb0a1 ???

    QByteArray _d;
    _d.setNum(m_startCode+i);// 这里是不是有问题
    QString str = QString::number(i);
    if(m_code){
    str = m_code->toUnicode(_d);//
    qDebug("toUnicode:%x",str.toUShort());
    qDebug()<<str;
    }



  • @MOMO

    _d.setNum(m_startCode+i);
    

    这句话的意思,我不是很理解。能解释一下吗?



  • 推荐相关阅读(http://qtdream.com/topic/674



  • @jiangcaiyang123 GB2312 编码(0xb0a1 +i) 转 QByteArray 好调用->toUnicode(_d) 函数



  • @jiangcaiyang123 链接 打不开啊???



  • @MOMO 链接包含了)字符,我处理一下,就可以打开了。


登录后回复
 

与 萌梦社区 的连接断开,我们正在尝试重连,请耐心等待