零宽空格,选不中全部字符

发布时间:2026/5/16 17:51:11

零宽空格,选不中全部字符 bud_pr​_ccbud_pr_cc两个字符串有区别它们在计算机看来是完全不同的。bud_pr​_cc注意pr和_之间有一个零宽空格即U200Bbud_pr_cc标准的没有额外字符关键区别第一个字符串bud_pr​_cc在pr和_之间包含了一个不可见的零宽空格字符Unicode:U200B。这个字符在屏幕上不显示也不占用可见空间但它是一个真实存在的、独立的字符。验证方法长度不同第一个字符串的长度比第二个多1。编码不同如果查看它们的十六进制或Unicode编码第一个在pr70 72之后会多出E2 80 8B这是UTF-8编码的零宽空格然后才是_5F。第二个则是连续的70 72 5F。结论虽然肉眼看起来一样但在字符串比较如操作、哈希计算、数据库查询等任何精确匹配的场景中这两个字符串不会相等。这种差异通常是由于从特定文档如PDF、网页、富文本编辑器复制粘贴时无意中引入了不可见字符导致的。如何检查/修复在代码中可以遍历字符串打印每个字符的Unicode码点来定位。使用支持显示不可见字符的文本编辑器如VS Code开启“渲染空白字符”。清除格式后重新输入或使用正则表达式移除所有\u200B等零宽字符。

相关新闻