不间断空格的处理方法

最近在处理文本的时候多次遇到不间断空格,开始没有注意,后来造成了不小的麻烦。这里记录一下它的处理方法。

1. 定义

不间断空格,或称不换行空格,Unicode代码为U+00A0,用来避免一些内容因为换行而分开。

例如,如果在3 cm之间使用空格,可能会导致在换行的时候把数字和单位分开,这时可以在中间使用不间断空格,就能保证即使在换行的位置也不会被分在两行。

2. 查找方法

不间断空格在一些软件中会有明确的标记:

  • Word:打开「显示编辑标记」,会渲染为°
  • Neovim:会渲染为+

也可以使用十六进制显示来查找:

1
hexdump -C file.txt | grep 'c2 a0'

3. 输入方法

在Windows下可以使用直接输入Unicode字符的方法:

  • 按住Alt,然后使用数字小键盘依次输入0160,最后松开Alt即可。

在不同的软件中也有其它输入方法:

  • Word:先输入00a0,然后按Alt+x,可以直接将Unicode代码转换为对应的字符。
  • vim/neovim:依次按Ctrl+k space space即可。

另外,在一些特殊格式的文件中还有其它的输入方式:

  • HTML/Markdown:直接使用 即可。
  • LaTeX:直接使用~即可。

4. 替换方法

最简单的方法是在可视化编辑器中替换:

  • Word:使用前面的方法在「查找」栏输入不间断空格即可。
  • Notepad3:在「查找」栏输入\xa0即可替换。

使用命令行的方法:

  • sed:sed -i 's/\xc2\xa0/ /g' file.txt
  • perl:perl -CSD -pi -e 's/\x{00a0}/ /g' file.txt