1.字符串转GB2312
传入要转换的字符串,即可返回GB2312的16进制的字符串
QByteArray utf8ToGB2312(QString utf8Data)
{
if(utf8Data.size()>12) {
//QMessageBox::information(this, "警告", "名称过长,应小于12个字");
return "[error]名称过长,应小于12个字";
}
//原始UTF8数据
QString strOrgData(utf8Data);
QTextCodec *utf8 = QTextCodec::codecForName("UTF-8");
QTextCodec::setCodecForLocale(utf8);
//1.UTF8 ---> GBK
//UTF8转unicode
QString strUnicode= utf8->toUnicode(strOrgData.toLocal8Bit().data());
//Unicode转GBK
QTextCodec *gbk = QTextCodec::codecForName("gbk");
//转化为16进制
QByteArray bytegbkHex = gbk->fromUnicode(strUnicode).toHex();
return bytegbkHex;
}
2.字符串转ASCII(16进制)
QByteArray stringToASCII(QString data)
{
//QByteArray byte = data.toUtf8();
QByteArray byte = data.toUtf8();
QByteArray byteASCII;
for(char c: byte) {
byteASCII += QString::

该代码实现了字符串从UTF8到GB2312的转换,以及字符串到ASCII的16进制表示。同时,提供了CRC16校验码的计算方法,用于数据验证。最后,展示了如何将16进制字符串转换为字节数据并发送至串口。

2427

被折叠的 条评论
为什么被折叠?



