QByteArray 填充 \x....\x.... 到 QString
QByteArray filled with \x....\x.... to QString
我正在以下列方式通过 QByteArray 接收串行数据
QByteArray serialdata = testport->readAll();
qDebug() << serialdata;
qDebug 会溢出
...\x00T\xAAN\x82v\xA9k\x7F\xEE\xCEMf\x1C\xAA...
我知道这背后有 Strings/Chars,但完全不知道使用的是什么格式。我搜索了 Bing 和这个板,但没有找到任何线索。更让我困惑的是,这些片段的长度不同。有些是\x12,有些是\x123甚至是\x1234。
谁能告诉我这是什么编解码器或格式,以及我如何将其转换为 QString?
qDebug
格式化数组以便它可以安全地显示,即将显示格式转换为 C 字符串文字的格式,其中非 ASCII 可打印字符被转义并表示为十六进制八位字节。
即\xab
表示一个字节,值为a*16+b
,其中a
和b
为十六进制数。
\x1234
表示 {0x12, '3', '4'}
.
\x00T\xAAN\x82v\xA9k\x7F\xEE\xCEMf\x1C\xAA
表示
{0x00, 'T', 0xAA, 'N', 0x82, 'v', 0xA9, 'k', 0x7F, 0xEE, 0xCE, 'M', 'f', 0x1C, 0xAA}
。这是一个 "string" 但绝对不是任何自然人类语言中的字符串,或者至少不是任何常见编码中的字符串。
绝对不是 ASCII 字符串。看起来更像是线路噪声。很可能您没有在端口上设置通信设置以匹配您与之通信的设备的设置。
我正在以下列方式通过 QByteArray 接收串行数据
QByteArray serialdata = testport->readAll();
qDebug() << serialdata;
qDebug 会溢出
...\x00T\xAAN\x82v\xA9k\x7F\xEE\xCEMf\x1C\xAA...
我知道这背后有 Strings/Chars,但完全不知道使用的是什么格式。我搜索了 Bing 和这个板,但没有找到任何线索。更让我困惑的是,这些片段的长度不同。有些是\x12,有些是\x123甚至是\x1234。
谁能告诉我这是什么编解码器或格式,以及我如何将其转换为 QString?
qDebug
格式化数组以便它可以安全地显示,即将显示格式转换为 C 字符串文字的格式,其中非 ASCII 可打印字符被转义并表示为十六进制八位字节。
即\xab
表示一个字节,值为a*16+b
,其中a
和b
为十六进制数。
\x1234
表示 {0x12, '3', '4'}
.
\x00T\xAAN\x82v\xA9k\x7F\xEE\xCEMf\x1C\xAA
表示
{0x00, 'T', 0xAA, 'N', 0x82, 'v', 0xA9, 'k', 0x7F, 0xEE, 0xCE, 'M', 'f', 0x1C, 0xAA}
。这是一个 "string" 但绝对不是任何自然人类语言中的字符串,或者至少不是任何常见编码中的字符串。
绝对不是 ASCII 字符串。看起来更像是线路噪声。很可能您没有在端口上设置通信设置以匹配您与之通信的设备的设置。