MQTTX里发送主题时,我用HEX然后在主题消息框输入AA,点击Plaintext后就变成了�,请问这是怎么转变的


1fc4bccc46b2db1112d94b8b2fa704e

请问HEX到Plaintext之间是怎样转化的?

你可以看一下这篇文章了解一下字符编码, 字符编码笔记:ASCII,Unicode 和 UTF-8

MQTT X 这里采用的是 UTF-8 编码。

你可以用这个工具自己编解码试试:Hex 编码/解码

@t1ger 这个问题其实没解决啊,官方误解了问题的意思。

在Hex编码的字符串转换为UTF-8编码的String时,有些编码是无法转换的,比如"9108"(0x91 0x08),此时就会用�代替这一段内容,就算转换回Hex编码的字节数组,实际意义也丢失了。

我现在遇到了这个问题,使用“有人DTU”的设备读取电表数据,使用规则引擎抓取,可是读数无法还原,因为原文被规则引擎转换为一个含有�的字符串。

一个实际的例子:DTU设备发送下面hex编码信息,被转换为字符串后无法再转换回去

6870 2842 1002 0068 9108 3333 3333 99a8 7733 0c16