在程序中,debug发现, 连个字符串是不一样的, 两个字符串对应的字符数组 如图:
发现 <0xa0>的区别,<0xa0>究竟是什么呢?
<0xa0>
是非断行空格(Non-breaking space, NBSP)的十六进制表示。在 HTML 中,它经常用作空格,但不会导致自动换行,这意味着它可以用来保持单词或文本元素在同一行内。这个字符在不同的上下文中由不同的方式产生:
-
用户输入:在某些文本编辑器或处理软件中,用户可能会不知不觉地输入非断行空格,尤其是在使用快捷键或特殊输入方法时。
-
编码转换:当文本从一种编码转换到另一种编码时,普通空格可能会被错误地转换为非断行空格。
-
复制粘贴:从网页、PDF文档或其他应用程序复制文本时,非断行空格可能会被一起复制,尤其是当原文本中使用了非断行空格来控制布局时。
-
程序生成:在编程时,程序可能会生成非断行空格,例如在生成 HTML 内容时,开发者可能会使用非断行空格来避免文本折行。
-
文本编辑器:一些文本编辑器在处理空格时可能会默认使用非断行空格,尤其是在处理宽度固定的空白字符时。
在 HTML 或其他编码的文本中,非断行空格可以有不同的表示方法:
- HTML 实体:
或 
- UTF-8 编码:
\xC2\xA0
- Unicode:
\u00A0
如果你遇到了不期望的 <0xa0>
字符,并且希望将其移除或替换,你可以在文本处理时使用相应的方法来处理。在大多数编程语言中,都有相应的字符串处理函数可以实现这一点。例如,在 JavaScript 中,你可以使用 .replace(/\u00A0/g, ' ')
来将所有非断行空格替换为普通空格。