首页| 论坛| 消息

标题:unicode怎么转换成中文然后显示出来啊
作者:misl1994
日期:2017-09-12 17:59
内容:

我用的QString string=socket->readall(),但读出来的是u0006之类。。怎么转换成中文显示出来啊


#1 [小韩老师 09-12 19:40]
从网络里读数据,当然不知道你的编码是啥,设置解码格式就可以了,比如什么gb2312,主要看发送方的编码格式
#2 [linker 09-12 23:53]
QString str = "\u4f60\u597d";
QTextCodec *codec = QTextCodec::codecForName("utf-8");//定义使用utf-8编码
QByteArray ret = codec->fromUnicode(str); //将unicode字符串用utf-8编码
QString string = QString::fromUtf8(ret);//将utf-8编码的数据赋给QString
qDebug()
#3 回 小韩老师 的帖子 [misl1994 09-13 09:08]
小韩老师:从网络里读数据,当然不知道你的编码是啥,设置解码格式就可以了,比如什么gb2312,主要看发送方的编码格式 (2017-09-12 19:40) 
打错了 。。。是serialport->readall,那边是单片机发的"hehe",我以为会是ascii码,但好像不对。。
#4 回 linker 的帖子 [misl1994 09-13 09:10]
linker:QString str = "\u4f60\u597d";
    QTextCodec *codec = QTextCodec::codecForName("utf-8");  //定义使用utf-8编码
    QByteArray ret = codec->fromUnicode(str);      .. (2017-09-12 23:53) 
谢谢。有个地方我打错了。。是serialport->readall那边是单片机发的”hehe”,我对编码没概念。。。以为单片机是以ASCII码发。。但好像不对。。比较懵逼
#5 标题 [小韩老师 09-13 10:46]
我确实没有手把手教楼主代码该怎么写,编码问题肯定是问题的关键,你发现你没有让楼主学习到问题的本质,你说我不真诚我就不同意了。难道手把手教写代码才是真诚,你这是授之以鱼,授之以渔不行啊,单片机硬件只懂皮毛我是没学过,我知道越底层的东西越和数据结构有关系,楼主应该去恶补一下数据和编码了,网络中传输的数据不管你是串口的还是网口的,基本是8bit的字节流,协议层只给你一个字节流,该怎么解释是你自己需要解决的,楼主应该是从操作流程上读取字节流在Qt中可以是QByteArray,然后对这个字节流进行操作解码

<< 1 2 >> (1/2)

回复 发表
主题 版块