⭐️ 文章又出现了隐藏字符,导致首页报错

2021-08-21

今天打开小窝,发现博客内容获取那里爆炸了,说是解析错误。很明显又有可能是编写的过程中输入了隐藏字符。关于这个问题的第二次复发,群里 @萧叶轩 同学告诉我有个叫 Unicode Table 的网站可以查询,结合 JS 的 charCodeAt 方法得知该隐藏字符就是第 8 号字符,和 上次 一样,叫做退格符。

关于如何避开隐藏字符,我此前想到的是在内容提交之前做一次正则替换。@戴兜 同学表示控制符可以直接全部过滤掉,他提供的正则是 [\x00-\x09\x0b\x0c\x0e-\x1f],避开了换行符以外的其他控制符。

小窝完全是自己的系统,想改确实很方便。但是 Typecho 博客可不行,就只能凭直觉和经验了。在此之前,@萧叶轩 提议让我暴力查表一波。这个是我的 SQL 命令:

SELECT * FROM `note` WHERE `content` REGEXP '[\\x00-\\x09\\x0b\\x0c\\x0e-\\x1f]'

确实发现了有不少日记出现了隐藏字符,大多都是没有对外发布的(包括没写完的)日记,挑出有问题的日记 ID,然后前端重新提交,自动过滤一次隐藏字符,就没有问题了。

配乐 一般
概览页 时间轴
奇趣音乐盒 技术源于 Kico Player
Emmm,这里是歌词君