微信对空格转换造成curl语句执行失败
背景:
同事给过来一条 curl 语句,很纯粹的一句语句,执行,报错了。
提示: no such file or directory
???? 一脸的黑人问号❓这么简单的语句,还能报错?并且还非常的莫名其妙。
解决
后来又发了一句过来,看起来一模一样的语句,执行,竟然又成功了。
啊,神奇了。(服务并没有任何的改变)
问题了下原来第一次是从微信上复制过来的,第二次是从 swagger 复制过来的。。
然后再查了一下: “Linux执行curl命令报错:No such file or directory” 这个问题, 发现已经有人给出答案:
https://blog.csdn.net/JokerLJG/article/details/126715364
原因就是:
某些特殊情况下,微信会将空格转换成了html中的 (没研究具体什么情况下)
%20:空格的URL编码
%C2%A0:html中的 的URL编码
厉害了。
还有这样的事情。
把前后两个 curl 语句,放到 URL编码工具上,看到确实还真的不一样:
https://www.iamwawa.cn/urldecode.html
真的是。。。厉害了!
有用的知识又增长了。
那问题:
如果现在只有一条微信复制过来的语句,该怎么办呢?
把这条语句复制到 sublime 编辑器中,
它就会现出真身:
可以看到,它里面多了很多 <0xa0> 这样的玩意儿,那当然就不对的了。
把 <0xa0> 换成 空格,它就好了。
嗯,有时候眼见的东西,还真不一定是真的呢。