最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

玩转服务器

网站源码admin0浏览0评论

玩转服务器

滴水穿石 非一日之功

今天我们还是来看一个新手用户会普遍困惑的问题:眼见不一定为实。

问题

先来看问题:

用户问题示例

用户问题示例

用户反馈了一些奇奇怪怪,都是按照正常理解本不应该出现的报错。追问一下,甚至代码还是参考的我们往期的教程。比如:玩转服务器—从卡顿到秒装,Conda焕新极速体验

教程中给出了miniconda 的下载地址:

教程

教程

但是如果直接在微信浏览器里复制粘贴,会报错:

微信浏览器复制粘贴报错信息

微信浏览器复制粘贴报错信息

一开始我还怀疑是不是镜像网址无法访问了。但是我发现同样的教程,在Edge浏览器打开,复制粘贴到服务器就能正常下载,所以这个坑纯纯是微信自己埋的。

对比查看

我们来看一下不同浏览器复制粘贴内容的对比:

从不同途径复制相同内容到文本编辑器查看

从不同途径复制相同内容到文本编辑器查看

这么一看,是不是就发现问题了。也就是为什么会有那些奇奇怪怪的报错。因为我们复制粘贴所看到的,并不是我们真实输入的内容。

我们很多教程代码都是在微信公众号分享,大家会很自然的用微信打开教程复制粘贴,但是微信这个问题,在我看来真的是令使用体验非常不好。至于还有哪些地方复制粘贴会有添加莫名隐藏字符,欢迎大家留言交流。

如何检查

如果你怀疑你的代码有隐藏字符,该如何查看:

1、文本编辑器检查

复制你的粘贴内容,放入文本编辑器查看,比如 Sublime Text

Sublime Text 文本编辑器

Sublime Text 文本编辑器

如果你的 Sublime Text 无法显示不可见字符,可能是没有设置相关显示参数。

在首选项 ——>设置

增加 "draw_unicode_white_space": "punctuation" 设置,保存即可。

如果设置为 "draw_unicode_white_space": "none" 则不显示隐藏字符。 不过punctuation 设置一般是默认设置。

2、放到Rstudio代码编辑区检查

如果你电脑上没有文本编辑器,那你复制到Rstudio的代码编辑区,一样可以看到区别。

3、Shell端查看

代码语言:javascript代码运行次数:0运行复制
echo "wget -c .sh"|cat -vte
或者
echo "wget -c .sh"|cat -A

4、一些在线工具

类似工具应该还有很多,其他好用的工具,大家也可以评论区推荐。
Hidden Characters Viewer

不仅可以查看隐藏字符,还能一键清理隐藏字符。

Hidden Characters Viewer

Hidden Characters Viewer

清理的可能不是那么完美还是需要自己检查一下。比如空格就被误清理了。

View non-printable unicode characters
  • .php?s=PER

清理隐藏字符

关于这种隐藏字符的问题,前面我们也介绍过,详见:从微信聊天记录复制粘贴的Linux代码为什么运行失败?

为什么会添加隐藏字符?

真实原因是什么就不得而知了,不过查询了一下AI,可能的原因是:

1. 防复制/防爬虫机制

  • 微信内置浏览器(X5内核)为了防止用户直接复制内容(尤其是链接、脚本等),可能会在复制的文本中插入不可见字符(如 <0xa0>)。
  • 这种行为类似于某些网站在网页内容中插入「复制保护代码」,目的是增加爬虫抓取的难度。

2. 格式保留与兼容性问题

  • 微信浏览器可能试图保留原始内容的「富文本格式」(例如空格、换行符),但由于编码处理不当,会插入非标准字符(如 <0xa0> 是 Unicode 的非换行空格 &nbsp;)。
  • 例如,提到的 wget<0xa0>-c<0xa0> 中的 <0xa0> 会导致命令无法执行,因为 Shell 不识别这种字符。
  • 微信浏览器的设计目标更偏向「内容消费」而非「开发辅助」,因此对代码复制的处理不够严谨。
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-04-22,如有侵权请联系 cloudcommunity@tencent 删除服务器教程浏览器微信编辑器

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论