如何用Java规定格式发送十六进制消息payload(hex)

终端设备需要接收十六进制数据,当我使用mqttx界面发送Hex数据没问题,如图所示终端可以正常接收
image
image
当我使用Java发送指令,发送的却是text消息,以下为日志:
image
也就是说终端只能识别十六进制数据,所以会将text文本的ASCII码转化成十六进制,也就是说发送为000500070000400101E584,实际它接收的是3030 3035 3030 3037 3030 3030 3430 3031 3031 4535 3834
Java中用的第三方库为:MqttClient,我该如何发送payload(hex)消息而不是payload(text)?

不懂 java,不过 mqtt 的 payload 本来就是二进制(16 进制只是打出来给人看的而已)
推荐的找的方向是 java 如何构造 2 进制数据。问问你手边的 AI,也许就有答案了。

2 个赞

关键:16 进制只是打出来给人看的而已
在进制上绕圈子的程序员都是不称职的程序员。 :grinning:

没办法呀,我发的就是字节数组二进制,设备厂商就说他们只接受十六进制 我真无语了都

好的,听起来貌似是设备厂商接受数据处理的问题