零度不可见字符
零宽度空白字符(十六进制:​
;,十进制:​
;)是一种看不见的空白字符,它是不可打印的字符,虽然没有宽度,但在设置了词间距调整的情况下会在分隔的不同单词间留出空白。
有的网页上插入了看不见的空白字符,如果直接复制会得到意料之外的内容,举个例子:
testdir=
mktemp -d
touch $testdir/CopyMe.txt
touch $testdir/CopyMe.txt
ls $testdir
运行上面的代码会看到两个 “同名” 文件共存在同一目录下,这个魔术的奥秘就是其中一个文件名中包含了零宽度空白字符。用户可以用命令tr -dc "[:print:]"过滤不可打印字符,以免它们带来麻烦。
面列出了 7 种不同的空白字符:
名称 十进制 十六进制 效果 说明
|| 没有字符
    | | 标准半宽空白字符
    | | 非换行空白字符
      | | 与 “n” 同宽的空白字符
      | | 与 “m” 同宽的空白字符
      | | 窄空白字符
​ ​ || 零宽度空白字符
    | | 全宽空白字符
文章转自:后端 零宽度空白字符