看不见的字符-<200b>


今天配置一个数据库链接地址时,报URL地址有问题,但在sublime Text里明明是正常的。

1
http://shgq.1.abc:1234/pools;http://shgq.2.abc:1234/pools#xxf

打开debug日志发现是地址解析错误,无法识别<200b>,但字符串中没有这个<200b>,是哪里冒出来的呢?

于是,我重新把配置贴到用vim打开的文本中,才发现了隐藏字符。

1
http://shgq.1.abc:1234/pools;http://shgq.2.abc:1234<200b>/pools#xxf

搜了一把这个<200>,学名zero-width space(ZWSP),是一种不可见的打印字符。

wikipedia给出一种实际的例子,可以很明显地看出区别,如下:

1
Lorem​Ipsum​Dolor​Sit​Amet​Consectetur​Adipiscing​Elit​Sed​Do​Eiusmod​Tempor​Incididunt​Ut​Labore​Et​Dolore​Magna​Aliqua​Ut​Enim​Ad​Minim​Veniam​Quis​Nostrud​Exercitation​Ullamco​Laboris​Nisi​Ut​Aliquip​Ex​Ea​Commodo​Consequat​Duis​Aute​Irure​Dolor​In​Reprehenderit​In​Voluptate​Velit​Esse​Cillum​Dolore​Eu​Fugiat​Nulla​Pariatur​Excepteur​Sint​Occaecat​Cupidatat​Non​Proident​Sunt​In​Culpa​Qui​Officia​Deserunt​Mollit​Anim​Id​Est​Laborum

通过vim编辑时变成如下文本,中间多了很多<200b>

1
Lorem<200b>Ipsum<200b>Dolor<200b>Sit<200b>Amet<200b>Consectetur<200b>Adipiscing<200b>Elit<2b>Sed<200b>Do<200b>Eiusmod<200b>Tempor<200b>Incididunt<200b>Ut<200b>Labore<200b>Et<200b>Dole<200b>Magna<200b>Aliqua<200b>Ut<200b>Enim<200b>Ad<200b>Minim<200b>Veniam<200b>Quis<200b>Norud<200b>Exercitation<200b>Ullamco<200b>Laboris<200b>Nisi<200b>Ut<200b>Aliquip<200b>Ex<200ba<200b>Commodo<200b>Consequat<200b>Duis<200b>Aute<200b>Irure<200b>Dolor<200b>In<200b>Reprehderit<200b>In<200b>Voluptate<200b>Velit<200b>Esse<200b>Cillum<200b>Dolore<200b>Eu<200b>Fugi<200b>Nulla<200b>Pariatur<200b>Excepteur<200b>Sint<200b>Occaecat<200b>Cupidatat<200b>Non<20>Proident<200b>Sunt<200b>In<200b>Culpa<200b>Qui<200b>Officia<200b>Deserunt<200b>Mollit<200bnim<200b>Id<200b>Est<200b>Laborum

如果使用chrome浏览器,打开检查功能查看wikipedia的这个例子,在Elements Tab页下面,找到上述字符串对应的html页面代码,可以看到上面<200b>均表示成了&#8203;

好了,再测试一下,​前面隐藏了一个分隔符!不信的话,试试复制一下,用vim编辑看看。:-D

零宽字符有什么用呢,可以作为内容的水印,这是另外一个话题了,可以发掘利用一下。

以后粘贴复制文本时需要多长一个心眼了。