Mqtt 什么';AT命令中的转义字符是什么?

Mqtt 什么';AT命令中的转义字符是什么?,mqtt,at-command,modem,firmware,nb-iot,Mqtt,At Command,Modem,Firmware,Nb Iot,Im使用BG96调制解调器通过MQTT连接到AWS iot 我正在尝试使用以下AT命令设置MQTT Last Will和Testation: +QMTCFG:"will",(0-5),(0,1),(0-2),(0,1),"willtopic","willmessage" 这很有效。 但现在我正试图将JSON格式的字符串添加到“willmessage”,因此我需要在其中添加“(双引号),这意味着我需要在命令中转义它们。但是我不知道我是否能逃脱他们或者逃脱的角色是什么 我尝试过的东西:\”(反斜杠

Im使用BG96调制解调器通过MQTT连接到AWS iot

我正在尝试使用以下AT命令设置MQTT Last Will和Testation:

+QMTCFG:"will",(0-5),(0,1),(0-2),(0,1),"willtopic","willmessage"
这很有效。 但现在我正试图将JSON格式的字符串添加到
“willmessage”
,因此我需要在其中添加
(双引号),这意味着我需要在命令中转义它们。但是我不知道我是否能逃脱他们或者逃脱的角色是什么

我尝试过的东西:
\”
(反斜杠)和
(双引号)


我查看了所有BG96数据表,没有发现任何地方提到过它。

在SIMCOM SIM800c上使用MQTT命令时,我遇到了同样的问题,我注意到常规反斜杠(\)会漏掉引号(就像在c中一样)当通过USB到TTL转换器直接与GSM单元通信时。为了在软件中实现此功能,我将以下字符串打印到连接到GSM调制解调器的UART:

AT+SMPUB=\"testTopicPost\",0,1,\"{\x5c\x22Key\x5c\x22 : \x5c\x22Value\x5c\x22}\"

这基本上是将原始\和“字符”发送到GSM单元。希望这个解决方案也适用于您。

您尝试过“{'key':'value'}”吗?请原谅我的基本问题,但是如果您只添加内部双引号而不转义,会发生什么情况?@ΦXocę웃Пepeúpaツ 单引号可以工作,但不是有效的JSON,因此另一端的AWS无法识别它。@000输入被切断。例如,
+QMTCFG:“will”、0,0,0、“test\topic”、“{”key:“value”}”
将生成一条消息,消息的另一端包含一个
{
。好的,我明白了。这是非常依赖于实现的。据我所知,其他设备有不同的行为。或者至少为二进制数据设计了一个在线接口(包括特殊字符,如
)。最后一次尝试:能否尝试使用
\x22
转义十六进制ASCII值?感谢您的建议,但BG96似乎不是这样