• 5035阅读
  • 5回复

[提问]带中文的QString怎么转成char呢 [复制链接]

上一主题 下一主题
离线heyzol
 

只看楼主 倒序阅读 楼主  发表于: 2013-01-31
— 本帖被 XChinux 从 Qt基础编程 移动到本区(2013-04-01) —

离线roywillow

只看该作者 1楼 发表于: 2013-01-31
你为啥非要转换成char*来显示这个信息呢?
为啥是乱码我是这么理解的
你把QString转换为utf8的char*了
然后QMessageBox其实最终处理的仍然是QString,如果你给他提供了char*,他会转换为QString来显示
而这一次转换可能就不是toUtf8的逆向了,说不定是用系统的gb编码进行的转码
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线heyzol

只看该作者 2楼 发表于: 2013-01-31
回 1楼(roywillow) 的帖子
有些api传入参数就是char,所以得转换。
离线roywillow

只看该作者 3楼 发表于: 2013-01-31
回 2楼(heyzol) 的帖子
至少Qt的参数接受字符串的时候大都是QString
如果是系统api的话,按照对应的要求转换为对应的编码就是了
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线lvhuat
只看该作者 4楼 发表于: 2013-01-31
编码问题呢。
QString 是Unicode
Qt主要在用Unicode在处理数据,支持utf8只是说,我们实现utf8和unicode的转换,你给我个utf8的串,我转成unicode再用就是了

1.原本好好两个字节成一个独立的数据的QString(imagePath)(假设你获得了一个"image"的串)

这下可好,被你弄成,有的2个有的1个,有的或者更多。(ba)(image 被转成"图片")
QByteArray 到char没有发生任何的编码转换,所以还是utf8(“图片”还是“图片”)

QMessageBox 拿到“图片”这个utf,因为它不认识。


离线XChinux

只看该作者 5楼 发表于: 2013-01-31
toStdWString().c_str()
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
快速回复
限100 字节
 
上一个 下一个