QT字符编码转换,可用于中文内码传输
来源:互联网 发布:打印服务器 端口 编辑:程序博客网 时间:2024/05/24 05:57
串口、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;}
- QT字符编码转换,可用于中文内码传输
- QT字符编码转换,可用于中文内码传输
- QT下中文字符编码的转换
- QT下中文字符编码的转换
- 中文内码互相转换
- 字符编码转换 QT
- QT的字符编码转换 .
- QT的字符编码转换
- golang中文字符编码转换
- 字符编码、内码,顺带介绍汉字编码
- C/C++ 各种字符编码字符串的转换 可用于XML文件的字符转化读写 (收集 GBK - UTF8 - Unicode - ANSI )
- Qt中关于中文字符编码问题
- QT:QString 字符串和中文字符编码
- VC中三种中文内码的转换方法
- 把中文字符转换成Utf8编码
- java中文字符乱码编码转换大全
- 中文字符编码的相互转换
- java中文字符乱码编码转换大全
- ViewFlipper的使用
- mysql重起服务并启动数据库
- PHP 面向对象之静态属性和静态方法
- STL入门导论[原+译]
- GOF设计模式趣解(23种设计模式)
- QT字符编码转换,可用于中文内码传输
- XML Publisher学习总结
- 常量指针和指针常量
- 浅谈C/C++的浮点数在内存中的存储方式
- IIS发布网站的一般步骤
- AVX指令集中的32种浮点比较关系详解(NaN、无序、有序等)
- LINUX 5.5 下安装ORACLE 10g
- 有关(int&)和(int)的区别
- 黑马程序——JAVA继承,学习进度加快(黑马我来了之六)