今天配置一个数据库链接地址时,报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 | LoremIpsumDolorSitAmetConsecteturAdipiscingElitSedDoEiusmodTemporIncididuntUtLaboreEtDoloreMagnaAliquaUtEnimAdMinimVeniamQuisNostrudExercitationUllamcoLaborisNisiUtAliquipExEaCommodoConsequatDuisAuteIrureDolorInReprehenderitInVoluptateVelitEsseCillumDoloreEuFugiatNullaPariaturExcepteurSintOccaecatCupidatatNonProidentSuntInCulpaQuiOfficiaDeseruntMollitAnimIdEstLaborum |
通过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>均表示成了​
。200b>
好了,再测试一下,这
前面隐藏了一个分隔符!不信的话,试试复制一下,用vim编辑看看。:-D
零宽字符有什么用呢,可以作为内容的水印,这是另外一个话题了,可以发掘利用一下。
以后粘贴复制文本时需要多长一个心眼了。