微信对空格转换造成curl语句执行失败

发布时间 2023-08-11 10:11:53作者: aaacarrot

背景:

同事给过来一条 curl 语句,很纯粹的一句语句,执行,报错了。

提示: no such file or directory

???? 一脸的黑人问号❓这么简单的语句,还能报错?并且还非常的莫名其妙。

解决

后来又发了一句过来,看起来一模一样的语句,执行,竟然又成功了。

啊,神奇了。(服务并没有任何的改变)

问题了下原来第一次是从微信上复制过来的,第二次是从 swagger 复制过来的。。

然后再查了一下: “Linux执行curl命令报错:No such file or directory” 这个问题, 发现已经有人给出答案:
https://blog.csdn.net/JokerLJG/article/details/126715364

原因就是:

某些特殊情况下,微信会将空格转换成了html中的&nbsp(没研究具体什么情况下)

%20:空格的URL编码
%C2%A0:html中的&nbsp的URL编码


厉害了。
还有这样的事情。

把前后两个 curl 语句,放到 URL编码工具上,看到确实还真的不一样:
https://www.iamwawa.cn/urldecode.html

真的是。。。厉害了!

有用的知识又增长了。

那问题:
如果现在只有一条微信复制过来的语句,该怎么办呢?

把这条语句复制到 sublime 编辑器中,
它就会现出真身:
image

可以看到,它里面多了很多 <0xa0> 这样的玩意儿,那当然就不对的了。

把 <0xa0> 换成 空格,它就好了。

嗯,有时候眼见的东西,还真不一定是真的呢。