今天和异地的同事联调接口,他把json参数用个人微信(钉钉则不会出现该问题)发给我,我在postman上面一直报错,他就正常,很是无语,最后发现是因为使用微信发送json数据,空格被转换了,如下所示:
问题描述
在使用postman发送请求时发现的一个问题。其中jsonA正常请求成功,jsonB请求就失败。
# jsonA
{"datatime": "2023-06-29", "type": "aqi"}
#jsonB
{"datatime": "2023-06-29", "type": "aqi"}
原因分析:
发现是因为使用微信发送json数据,空格被转换了,如下所示:
#jsonA
\u007b\ua\u0020\u0020\u0020\u0020\u0022\u0070\u006c\u0061\u0063\u0065\u0049\u006e\u0066\u006f\u0049\u0064\u0022\u003a\u0022\u0031\u0022\ua\u007d
#jsonB
\u007b\ua\u00a0\u00a0\u00a0\u00a0\u0022\u0070\u006c\u0061\u0063\u0065\u0049\u006e\u0066\u006f\u0049\u0064\u0022\u003a\u0022\u0031\u0022\ua\u007d
在代码对比工具中也可以看出空格的格式不同
可见 \u0020 转换成了\u00a0。
如果出现这样子相同的问题,使用postman的Beautify 格式化一下json,就可以使用了。
关于空格的编码
不间断空格\u00A0,主要用在office中,让一个单词在结尾处不会换行显示,快捷键ctrl+shift+space ;
半角空格(英文符号)\u0020,代码中常用的;
全角空格(中文符号)\u3000,中文文章中使用;
网友评论