QT字符编码转换,可用于中文内码传输
来源:互联网 发布:怎么取消淘宝店铺 编辑:程序博客网 时间:2024/05/17 06:52
作者:liuguangzhou123
转自:http://blog.csdn.net/liuguangzhou123/article/details/7478088
串口、TCP、UDP传输中文字符时,先将字符串转内码。客户端接收到数据后,将内码转为字符串就OK了
QByteArray CommonFunction::strToInterCode(constQString&str)//字符串转内码
{
QString strName = str.toLocal8Bit();
QByteArray code;
code.append (strName);
while(code.count()<8)
{
code.append (QByteArray::fromHex ("20"));
}
qDebug ()<<"string to intercode"<<QObject::tr("%1").arg (code.toHex ().data ());
return code;
}
//内码转字符串,要求为双字节数
QString CommonFunction::interCodeToStr(const QByteArray &data){
QString str;QByteArray temp;for(int i= 0;i<data.length();i+=2){if(!(data[i] == 0x20 && data[i+1] == 0x20)){temp.append (data[i]);temp.append (data[i+1]);}}str = QString::fromLocal8Bit(temp);qDebug ()<< "intercode To string :"<<str;return str;}
// 字符串转Unicode码
QByteArray CommonFunction::strToUniCode(const QString &str){
// 这里传来的字符串一定要加tr,main函数里可以加 QTextCodec::setCodecForTr(QTextCodec::codecForLocale());QString stt = QObject::tr("%1").arg (str);QByteArray data;const QChar *q;QChar qtmp;int num;q=stt.unicode();int len=stt.count();for(int i=0;i<len;i++){qtmp =(QChar)*q++;num= qtmp.unicode();quint8 hi = (quint8)(num >> 8);quint8 lo = (quint8)(num);data.append (hi);data.append (lo);}while(data.count () <8){data.append (QByteArray::fromHex ("20"));}qDebug ()<<"string to unicode :"<<QObject::tr("%1").arg (data.toHex ().data ());return data;}
//Unicode码转字符串
QString CommonFunction::uniCodeToStr(const QByteArray &data){
QByteArray data_1;for(int i= 0;i<data.length ();i+=2){if(!(data[i] == 0x20 && data[i+1] == 0x20)){data_1.append (data[i]);data_1.append (data[i+1]);}}QString str = data_1.toHex ().data ();int temp[400];QChar qchar[100];QString strOut;bool ok;int count=str.count();int len=count/4;for(int i=0;i<count;i+=4){temp[i]=str.mid(i,4).toInt(&ok,16);//每四位转化为16进制整型qchar[i/4]=temp[i];QString str0(qchar, len);strOut=str0;}qDebug ()<<"unicode to string:"<<strOut;return strOut;}
0 0
- QT字符编码转换,可用于中文内码传输
- QT字符编码转换,可用于中文内码传输
- QT下中文字符编码的转换
- QT下中文字符编码的转换
- 中文内码互相转换
- 字符编码转换 QT
- QT的字符编码转换 .
- QT的字符编码转换
- golang中文字符编码转换
- 字符编码、内码,顺带介绍汉字编码
- C/C++ 各种字符编码字符串的转换 可用于XML文件的字符转化读写 (收集 GBK - UTF8 - Unicode - ANSI )
- Qt中关于中文字符编码问题
- QT:QString 字符串和中文字符编码
- VC中三种中文内码的转换方法
- 把中文字符转换成Utf8编码
- java中文字符乱码编码转换大全
- 中文字符编码的相互转换
- java中文字符乱码编码转换大全
- printk 使用方法
- 检测点10.1-10.5
- 常见的几个Qt编程问题的处理(转自QT中文论坛)
- 【Apache Kafka】代码实例
- Java中构造函数是什么?它应该具体怎么用呢?
- QT字符编码转换,可用于中文内码传输
- MHDD工具使用简写
- 线程属性
- qt中文编码
- intellidea 快捷键
- POJ 1979 Red and Black (zoj 2165) DFS
- 数学:怎么理解逻辑中的“必要条件”和“充分条件”?
- C语言之选择排序
- C/C++ 数据类型及范围