QT5中怎样把qstring转化为ASCII编码?如果字符串中含有中文的话,该怎样转换?

如题:QT5中怎样把qstring转化为ASCII编码?如果字符串中含有中文的话,该怎样转换?... 如题:QT5中怎样把qstring转化为ASCII编码?如果字符串中含有中文的话,该怎样转换? 展开
 我来答
刘大鑫仔
2014-04-05
知道答主
回答量:1
采纳率:0%
帮助的人:2.3万
展开全部
QString str = "汉字";
QTextCodec *pCodec = QTextCodec::codecForName( "GBK" );

QByteArray data = pCodec->fromUnicode( str );

我估计你转化成ASCII码是指要转换成GBK编码的意思.....
追问

我这样是试了下,还是不行!在QT5中!!!

追答

你的测试程序有两个问题:

  1. 在for循环的时候,你用str.length()是不对的,str.length返回的是字的个数,str中字的个数应该是10,所以输出了10行,但是将“123wdasd汉字”转换为GBK之后,占用的字节是12个字节(也主是12个char),每个汉字是二个字节,字母和符号是一个字节。可以使用data.count()来输出,它记录的是字节的个数。

  2. 使用%c打格式化输出有问题,它是打不出中文的。


我的测试程序中str为“汉字”,从内存编辑器中可以看出,data中的值为"babad7d6",汉字的GBK编码为0XBABA,字的GBK编码为0XD7D6,所就从内存看,是转换成功了。

本测试测试是在 Qt 5.2中写的

匿名用户
2014-07-10
展开全部
建议改用“toLocal8Bit()"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式