• 7646阅读
  • 5回复

如何将ushort表示GBK编码显示出来? [复制链接]

上一主题 下一主题
离线vaqeteart
 

只看楼主 倒序阅读 楼主  发表于: 2009-12-07
我有一个数组是ushort的,
unsigned short stringGBK[10] = {45,95,114,122,90,121,8730,112,80,109};
想把它转换成为unicode码并且显示出相应的汉字,该怎么做好呢?
离线dbzhang800

只看该作者 1楼 发表于: 2009-12-07
引用楼主vaqeteart于2009-12-07 10:55发表的 如何将ushort表示GBK编码显示出来? :
我有一个数组是ushort的,
unsigned short stringGBK[10] = {45,95,114,122,90,121,8730,112,80,109};
想把它转换成为unicode码并且显示出相应的汉字,该怎么做好呢?


你这是GBK编码?
离线vaqeteart

只看该作者 2楼 发表于: 2009-12-07
引用第1楼dbzhang800于2009-12-07 12:40发表的  :
你这是GBK编码?

抱歉,那个变量取名叫***gbk,我以为是gbk编码,我刚刚查了一下,确实不在GBK编码范围内?也有可能它是unicode编码.
谢谢指正,我希望能有一个思路或者方法,将这个十进制数换算成汉字,假设是gbk或者假设是unicode都行。
我试过用下面的代码以及代码内被注释的部分的各种组合方法,都不管用

  1.        QString gbk_str;
  2.         QString tmp_str;
  3.         for(int i = 0; i < 10; ++i)
  4.         {  
  5.                 QChar tmp(stringGBK[i]);
  6.                 //tmp_str+=QString().setUnicode(&tmp,1);
  7.                 tmp_str.append(tmp).append(',');
  8.         }  
  9.         //QTextCodec *codec = QTextCodec::codecForName("UTF-8");
  10.         QTextCodec *codec = QTextCodec::codecForName("GBK");
  11.         //QTextCodec *codec = QTextCodec::codecForName("GB18030-0");
  12.         gbk_str = codec->toUnicode(tmp_str.toLocal8Bit());
  13.         //gbk_str = codec->toUnicode(tmp_str.toUtf8());
  14.         cout<<gbk_str.toLocal8Bit().data()<<endl;
  15.         //cout<<gbk_str.toUtf8().data()<<endl;
  16.         //cout<<tmp_str.toUtf8().data()<<endl;
离线tieqilin
只看该作者 3楼 发表于: 2009-12-07
unicode编码
离线vaqeteart

只看该作者 4楼 发表于: 2009-12-07
怎么用Qt显示出unicode编码的中文?
离线cao_zhong_yu
只看该作者 5楼 发表于: 2010-05-14
我也遇到了跟你一样的问题,不知你解决了没有
通过函数我得到一个ushort[10]的数组,刚开始我以为是unicode码,就真接调QChar(ushort);真接打印就可以,不用设QTextCodec
就像QChar(23383);23383是汉字的'字'的unicode的十进制码
经过上面的处理我得到了一堆朝鲜文,后来一查才知道,我的那个数组是gbk码
从gbk到unicode内码如何转换,有点头大
快速回复
限100 字节
 
上一个 下一个