QT 给下位机发送中文:
- qt给下位机发送中文一般采用unicode编码。比如 中文"你好"转unicode编码就是4f60 597d 。
- 我们一般都是按照小端模式发送,低字节在前,高字节在后,实际发送的内容就是
60 4f 7d 59
。
uint8_t QLOBYTE(uint16_t ch){return ch & 0xff;}//获取低位
uint8_t QHIBYTE(uint16_t ch){return (ch >> 8) &0xff;}//获取高位
void test()
{
QString str = "你好";
QChar*data = str.data();
char res_data[1024] = {0};//接收结果buf
int i = 0;
while(!data.isNull())
{
res_data[i] = QLOBYTE(data->unicode());//转unicode码,获取低位
res_data[i+1] = QHIBYTE(data->unicode());//转unicode码,获取高位
i = i+2;
data++;
}
}
根据数组的地址res_data和长度str.size()*2就可以组成自己需要的数据包了。