报错
个人网站 https://houbb.github.io/feed.xml 有一个 RSS 订阅。
但是经常会报错:
This page contains the following errors:
error on line 124913 at column 127: PCDATA invalid Char value 8
Below is a rendering of the page up to the first error.
因为内容较多,所以想找到问题也比较麻烦。
报错原因
包含一些特殊字符。
也就是一些无法显示的控制字符。
比如 ascii 编码 01-31 之间的,还包括 127。
如何排除
代码
整体思路:解析所有的文章内容,正则匹配特殊字符,可以代码直接替换掉。
[\\x08]
这个匹配的是 ascii = 8 的字符。
public static void main(String[] args) {
// 特殊字符匹配
String regex = "[\\x08]";
Pattern pattern = Pattern.compile(regex);
File[] files = new File("D:\\code\\github\\houbb.github.io\\_posts").listFiles();
for(File file : files) {
String content = FileUtil.getFileContent(file);
if(RegexUtil.match(pattern, content)) {
// 正则匹配处理
}
}
}
全文替换
也可以直接根据 ascii 全文替换:
for(int i = 1; i < 32; i++) {
char c = (char) i;
System.out.println(i + ": " + Character.valueOf(c));
}
ps: 好像很多网站不支持,这里为了不影响 feed 文件,使用截图。