网易首页 > 网易号 > 正文 申请入驻

一个隐形空格让命令失效,3个不可见字符越清理越危险

0
分享至

你很可能遇到过这个 bug:从文档页复制一条命令,粘到终端里执行,结果失败了。命令看上去完全正确,你用手再敲一遍,却成功了。 问题不在你的操作,而在于你复制的命令里混进了一个隐形字符:U+00A0 NO-BREAK SPACE。它看起来和普通空格一样,但 shell 把它当成另一个 token。你的眼睛分辨不出差别,程序却严格区分。 这不是孤例,而是一整族以“看不见”为特征的 bug。于是很多人会想到写一个“清洁器”,把所有不可见字符删掉。这个方向,恰恰是最容易出错的地方。 最常见的实现是黑名单式清理: ```js const clean = s => s.replace(/[\u200B-\u200D\u2060\uFEFF\u00AD]/g, ""); ``` 这段代码看起来干净利落,但跑一下这个字符串: ```js clean("\u{1F468}\u200D\u{1F469}\u200D\u{1F466}"); // 输入:‍‍ 一个家庭 emoji // 输出: 三个单独的人,两个连接符都被删了 ``` U+200D ZERO WIDTH JOINER 在那里并不是垃圾,它恰恰是 emoji 序列得以组成一个家庭的机制。把它删掉,你就在用户看不见的地方改写了内容。 更严重的问题发生在真实语言里。波斯语、阿拉伯语、以及多种印度文字中,U+200C 和 U+200D 承担着实际的拼写功能。比如波斯语表示“我读”的单词: ```js const persian = "\u0645\u06CC\u200C\u062E\u0648\u0627\u0646\u0645"; clean(persian); // 删除 U+200C 后,拼写从“میخوانم”变成了另一种写法 ``` 在梵文天城体里,U+0915、U+094D、U+200D、U+0937 组合出来的连字,和去掉连接符后的内容是两个不同的字形。一个删除零宽字符的“清洁器”不是在清理,是在毁坏内容。最可怕的是,因为这些字符不可见,没人会立刻发现,直到问题在很远的地方爆出来。 正确的修复思路,不是把某个码点位看作“本质上的垃圾”,也不是让一份黑名单替所有语言做决定。真正的做法是,理解你正在处理的内容是什么:如果它是 shell 命令,就去检查是否有非法空白;如果它是文本或 emoji,就不要用粗暴的字符清理解析它。必要时按上下文判断,而不是在不知道字符用途的情况下,删掉所有“看不见的东西”。 隐形字符不是洪水猛兽,真正危险的是我们以为它们毫无意义。


特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
杜继甫被开除党籍和公职

杜继甫被开除党籍和公职

六安新周报
2026-08-11 12:17:19
年终奖180万变成1800,我提离职,董事长:刚给你发180万,你疯了

年终奖180万变成1800,我提离职,董事长:刚给你发180万,你疯了

一口娱乐
2026-08-12 07:51:17
10秒骤降60°C!玩家用零下51°C冷冻喷雾给CPU降温:一喷瞬间起霜

10秒骤降60°C!玩家用零下51°C冷冻喷雾给CPU降温:一喷瞬间起霜

快科技
2026-08-11 17:54:35
乔治娜站在C罗私人飞机旁这张私服照,简约却自带豪门氛围感

乔治娜站在C罗私人飞机旁这张私服照,简约却自带豪门氛围感

岁月有情1314
2026-08-12 11:10:06
郭富城挽老婆手好腻歪!方媛穿2280马甲背2.2W包,背影像年轻情侣

郭富城挽老婆手好腻歪!方媛穿2280马甲背2.2W包,背影像年轻情侣

小疯子耶
2026-08-12 06:17:34
阿萨德遭判死刑,普京尽力了,谈判18个月,也没有把他交给朱拉尼

阿萨德遭判死刑,普京尽力了,谈判18个月,也没有把他交给朱拉尼

观史搜寻着
2026-08-12 13:55:11
印度轮椅大军,为何能薅遍全球?

印度轮椅大军,为何能薅遍全球?

旅界Pro
2026-08-11 07:47:20
太狠了!暴瘦脱了一层壳,不得了啊,大帝,你来真的啊

太狠了!暴瘦脱了一层壳,不得了啊,大帝,你来真的啊

球童无忌
2026-08-11 15:09:27
菲律宾用水泥焊死仁爱礁破船,但他们没想到:中国已看清背后的局

菲律宾用水泥焊死仁爱礁破船,但他们没想到:中国已看清背后的局

冰语历史
2026-08-12 11:56:34
岳飞冤死后,南宋朝堂集体躺平:赵构再怎么求,也没人肯卖命了

岳飞冤死后,南宋朝堂集体躺平:赵构再怎么求,也没人肯卖命了

小豫讲故事
2026-08-12 06:00:19
乌克兰跨境攻入俄罗斯领土库尔斯克!消灭俄军装甲纵队

乌克兰跨境攻入俄罗斯领土库尔斯克!消灭俄军装甲纵队

项鹏飞
2026-08-11 20:13:04
百年好合!C罗乔治娜宣布已在葡萄牙完婚,仅有5个孩子和至亲出席

百年好合!C罗乔治娜宣布已在葡萄牙完婚,仅有5个孩子和至亲出席

818体育
2026-08-12 09:35:57
朝鲜缺电的情况比越南严重得多,为什么中国不向朝鲜输电呢?说穿了,一旦给朝鲜送电,很可能变成一笔难以收回的巨额坏账

朝鲜缺电的情况比越南严重得多,为什么中国不向朝鲜输电呢?说穿了,一旦给朝鲜送电,很可能变成一笔难以收回的巨额坏账

谈史论今1
2026-08-10 19:57:55
中美博弈,已经到了最关键的时刻,可以说是生死存亡

中美博弈,已经到了最关键的时刻,可以说是生死存亡

安安说
2026-08-10 14:17:21
百花奖闭幕式主持翻车:央视一姐蓝羽靠边站,演员跨界控场尴尬

百花奖闭幕式主持翻车:央视一姐蓝羽靠边站,演员跨界控场尴尬

动物奇奇怪怪
2026-08-12 04:26:33
遭韩国瑜怒飙“辞总召” 傅昆萁千字长文回应了

遭韩国瑜怒飙“辞总召” 傅昆萁千字长文回应了

王姐懒人家常菜
2026-08-12 11:49:07
台媒曝:张颖颖曾逼汪小菲给她买房,要求汪小菲每月付47万生活费

台媒曝:张颖颖曾逼汪小菲给她买房,要求汪小菲每月付47万生活费

阿銍武器装备科普
2026-08-12 09:20:05
中国“安全套大王”被抓,卖了一辈子避孕套,最终栽在了自己手里

中国“安全套大王”被抓,卖了一辈子避孕套,最终栽在了自己手里

北海史记
2026-08-10 13:04:27
广东队重磅出手,新赛季第一签约,球迷怒喷,没有朱芳雨真不行

广东队重磅出手,新赛季第一签约,球迷怒喷,没有朱芳雨真不行

宗介说体育
2026-08-12 13:54:32
为啥景区大门越修越远?文旅部一纸通报,这些5A景区栽在摆渡车上

为啥景区大门越修越远?文旅部一纸通报,这些5A景区栽在摆渡车上

阿振观点
2026-08-12 05:14:51
2026-08-12 14:55:00
像素与芯片
像素与芯片
有态度网友ytd
304文章数 63关注度
往期回顾 全部

科技要闻

Manus第二季,浪子回头

头条要闻

行长套取2100万获刑:3100万的万柳书院月供9万压力大

头条要闻

行长套取2100万获刑:3100万的万柳书院月供9万压力大

体育要闻

乔丹鲨鱼们的合同:1996,史上最伟大夏天

娱乐要闻

陈思诚恋情疑云再起

财经要闻

李嘉诚,再一次大撤退!他嗅到了什么?

汽车要闻

闪充/天神之眼B/云辇-C 2027款海豹06售9.99万元起

态度原创

健康
亲子
房产
旅游
家居

心血管专家破解猝死八大谣言

亲子要闻

为什么聪明的孩子,都有很强的主动性?

房产要闻

价格登顶,断层领跑!澄迈这家楼盘,凭什么?

旅游要闻

呼和浩特昭君景区游客观演被烫伤后续:双方达成和解,游客收到8000元赔偿

家居要闻

2026建博会(广州) 公装联探展交流活动

无障碍浏览 进入关怀版