关于字符串转义问题

当我们发送字符串时,往往需要发送“ 引号这样的字符。

但是这是对于发送引号的情况。这相当于剥离一层。那么我们只需要在“号前面加一个反斜杠\。

但是在一些问题中,如在单片机向esp8266发送AT指令,发送json数据时,会出现剥离两次的情况。

单片机向esp发送,剥离一层。

esp向网络发送,又剥离一层。

现在的情况即是。我们本是一个字符串。

而我们这个字符串的内容是一个字符串。

而这个字符串中又有引号引起来的东西,而为了防止匹配错误,他做了转义。

即是内容中,的字符串,存在转义。

举个例子

"{\"id\":\"123\"\,\"params\":{\"temp\":{\"value\":16\}}}"

我们要发送的字符串的内容长这个样子。

此时,我们需要用引号将他们包括起来。

对于外层的引号,我们可以用一次转义来解决。

但是对于内层的引号,因为他本身需要一个转义,我们需要再来一次转义。

如果你是这样的想的,那么久掉入了陷阱当中。

对于这个东西,我们应该将之当成一个个字符。

发送应该想办法发送的是一个\“

对于这样一个东西,我们应该分别看待,

先发送一个\  ,所以 发的是\\,这样进行转义。

然后再发送一个"  , 所以发的是\'

所以合起来是 \\\"

这样的思想,是,我们只将它们当成字符串,只关心下一层的内容,而不关心再多一层的数据转义问题。

利用这样的思想,无论是字符串嵌套转发多少次,我们都可以一层一层推及上来。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值