Saber 酱的抱枕

Fly me to the moon

04/23
2019
学习

不规则的空白

今天有人报告我的 pixiv 图片下载器在某些情况下,无法保存某个图片。我去检查了下,发现这个作品(pid=73111615)最后的空格暗藏玄机。

不规则的空格 空白

复制这个空格,粘贴到别的地方,把光标放到最后,然后按键盘的 ← 箭头,会发现需要按 4 次才能到这个空格的前面。

复制到浏览器控制台,发现确实是 4 个字符。

不规则的空格 空白

经过检查,第一个空格是普通的空格,后面 3 个是特殊字符,它并不会显示出来。浏览器控制台里那时应该是做了特殊处理。这玩意放在代码里,ESLint 报错说这是“irregular whitespace”,不规则的空白。

最后我复制它的 Unicode 码 \u200b,把它替换掉了。

不规则的空格 空白

特殊字符防不胜防啊,不知道以后还会不会遇到别的来捣乱。

不规则的空白

  1. 123
    Google Chrome 73Google Chrome 73Windows 10/11Windows 10/11

    那就是一个控制字符,我曾经也遇到过,
    win系统的日期里,如果格式要求个位月份和日期不显示零的话,他们就是拿这个字符占位,
    确保不显示的同时,还能够正确排序.

    回复
    1. saber 文章作者
      Google Chrome 73Google Chrome 73Windows 10/11Windows 10/11

      原来是这样,不知道有没有正则可以把这样的字符一网打尽,我在网上搜的一些都不好使

      回复
  2. locationiskey
    Microsoft EdgeMicrosoft EdgeWindows 10/11Windows 10/11

    路过的PM:
    能不能触发错误的时候就把文本全转成Unicode码保存?(这样是不是又会导致文件名太长233)(那就用id保存吧)
    ←_←

    回复
    1. saber 文章作者
      Google Chrome 73Google Chrome 73Windows 10/11Windows 10/11

      保存 \u200b 这个字面量吗?不过那样的话斜杠还得去掉,也挺麻烦。用 id 是最好的,不过有些人有其他需求~

      回复

评论 locationiskey 撤销评论