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
因为我的崩溃程序,我发布了一个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