• 5660阅读
  • 6回复

[提问]unicode码QChar怎么转不了中文了出现了乱码 [复制链接]

上一主题 下一主题
离线vbroot
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-12
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —
  1. //27721是汉这个字的十进制
  2.     QChar pch1(27721);
  3.     qDebug() <<pch1;
  4. //但是显示是乱码,请指点下!
  5. //谢谢了!


  1. QChar dd('汉');
  2.     //汉 27721
  3.     int nnc;
  4.     nnc=dd.unicode();
  5.     qDebug() <<nnc;
  6. //nnc 显示是的GB码 BABA,怎么让它显示unicode码,要怎么设置QT啊



离线roywillow

只看该作者 1楼 发表于: 2013-01-12
不要在代码里用中文
如果说那个27721是通过下面的代码获得的话,那肯定不是那个字的unicode值
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线vbroot

只看该作者 2楼 发表于: 2013-01-12
  1. QChar pch1(27721);
  2. qDebug() <<pch1;


上面的代码出来的是乱码,而在另一个操作系统(win7)下不是乱码能正确显示为汉字。

27721 不是下面的代码产生的,下面代码产生是的(BABA)10进制为47802想让它显示为27721 不知道怎么设置QT
离线roywillow

只看该作者 3楼 发表于: 2013-01-12
回 2楼(vbroot) 的帖子
代码中不要用中文,因为要处理源码的编码的问题,这是我一贯主张的
如果27721真的是unicode值的话,那就有可能是目标系统的问题了?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线vbroot

只看该作者 4楼 发表于: 2013-01-12
哦,那我也尝试着不用中文了,直接用编码比较好处理是吧。
离线vbroot

只看该作者 5楼 发表于: 2013-01-12
发现个问题哦,调试时用qDebug() 显示乱码。
运行时qDebug() 输出的正常的了没有乱码了什么原因哦!
离线realfan

只看该作者 6楼 发表于: 2013-01-12
回 3楼(roywillow) 的帖子
非常赞同。
有中文就要考虑编码问题。
快速回复
限100 字节
 
上一个 下一个