• 4803阅读
  • 3回复

[提问]请问GBK编码怎么转换成汉字 [复制链接]

上一主题 下一主题
离线lazijiding
 

只看楼主 倒序阅读 楼主  发表于: 2012-03-15
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
  1. QString str,str1;
  2. str="啊1汉";
  3. QByteArray a=str.toLocal8Bit();
  4. int i=a.size();
  5. for(int j=0;j<i;j++)
  6. {
  7. str1=str1+" "+QByteArray::number(a[j], 16);
  8. }
  9. char data2[5] = { 0x00b0, 0x00a1,0x0031,0x00ba,0x00ba };
  10. QString str4=data2;
  11. ui->txtSend->setText(str4.trimmed());


我在字符串和GBK编码转换时遇到了问题
上面的代码  我想看到的结果是“啊1汉”  结果却是“啊1汉”在加上随机的乱码 比如“啊1汉Pl��m�(l��m���d�”
请问要怎么解决这个问题?


离线lazijiding

只看该作者 1楼 发表于: 2012-03-15
原来还要在最后加个0x00
离线wxj120bw

只看该作者 2楼 发表于: 2012-03-15
回 1楼(lazijiding) 的帖子
离线helloword
只看该作者 3楼 发表于: 2012-07-18
void GBK2UTF8(string& strGBK)
{

    QString gbkstr(strGBK.c_str());

    //vs下qt没有内置gbk编码器,需要自己添加进来,WGetTextCodeForName是手动添加的,并且需要向工程中添加gbk的库文件

    QTextCodec *codec = WGetTextCodeForName("GB18030");

    QString utfstr = codec->toUnicode(gbkstr.toUtf8());

    strGBK = utfstr.toStdString();


}
void UTF82GBK(string& strUtf8)
{
    //告诉QString自己的编码是utf8
    QString gbkstr = QString::fromUtf8(strUtf8.c_str());

    strUtf8 = gbkstr.toStdString();

}
快速回复
限100 字节
 
上一个 下一个