Mosquitto 清除保留的 mojibake 主题

Mosquito clear retained mojibake topic

因为我的崩溃程序,我发布了一个mojibake主题,����部分是一些随机字节码,例如

test/���������������/yoyoyo qqq

如果我想清除它,我输入类似

的内容
mosquitto_pub -t test/���������������/yoyoyo -r -n

但这没有用,因为这些 � 字符不是原始 �,这些编解码器在 ascii 和 unicode 中不匹配,因此显示为 � 字符。

如何在不删除整个保留文件的情况下清除这些保留消息?

谢谢!

如果您无法弄清楚实际的字符是什么,您可以捕获它们并将它们播放回 mosquitto_pub,像这样:

mosquitto_sub -v -C 1 -N -t 'test/+/yoyoyo' > file.txt

这会将与模式匹配的第一条消息的主题和负载保存到文件中。主题和paylaod之间会有一个space。

然后您可以编辑文件以删除有效负载并仅保留主题(单独一行,末尾没有新行)并将其另存为 edited_file.txt

然后您可以将其反馈到 mosquitto_pub,添加 -n 标志(空消息)和 -r 标志(保留消息)

mosquitto_pub -t `cat edited_file.txt` -r -n