零宽空格,选不中全部字符
2026/5/16 17:51:05 网站建设 项目流程

bud_pr​_cc

bud_pr_cc

两个字符串有区别,它们在计算机看来是完全不同的

  • bud_pr​_cc(注意:pr_之间有一个零宽空格,即U+200B
  • bud_pr_cc(标准的,没有额外字符)

关键区别:第一个字符串bud_pr​_ccpr_之间包含了一个不可见的零宽空格字符(Unicode:U+200B)。这个字符在屏幕上不显示,也不占用可见空间,但它是一个真实存在的、独立的字符。

验证方法:

  1. 长度不同:第一个字符串的长度比第二个多1。
  2. 编码不同:如果查看它们的十六进制或Unicode编码,第一个在pr70 72)之后会多出E2 80 8B(这是UTF-8编码的零宽空格),然后才是_5F)。第二个则是连续的70 72 5F

结论:虽然肉眼看起来一样,但在字符串比较(如==操作)、哈希计算、数据库查询等任何精确匹配的场景中,这两个字符串不会相等。这种差异通常是由于从特定文档(如PDF、网页、富文本编辑器)复制粘贴时无意中引入了不可见字符导致的。

如何检查/修复:

  • 在代码中,可以遍历字符串打印每个字符的Unicode码点来定位。
  • 使用支持显示不可见字符的文本编辑器(如VS Code开启“渲染空白字符”)。
  • 清除格式后重新输入,或使用正则表达式移除所有\u200B等零宽字符。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询