我们正在执行以下操作:
- 使用某些指定的编码打开文件的阅读器。
- 读入每一行,将其解析为 CSV。
对于 CSV 数据中的某些列,将其传递给 JSoup 以清除 HTML,如下所示:
public String apply(@Nullable String input) { Document document = Jsoup.parse(input); return document.text(); }
这很好用,除非存在数字字符引用,例如 
. 似乎正在发生的事情是,由于我们必须在弄清楚编码之后进行 JSoup 调用(以使 CSV 解析工作),当 JSoup 开始将硬编码字节转换为字符时,我们正在工作使用错误的字符集。字节 160 (0xa0) 是 windows-1252 中的不间断空格,但不是有效的 Unicode 字符,因此当 JSoup 将数字字符引用替换为字节时,会给我们带来错误的数据。
有没有解决的办法?它需要为 JSoup 提供数字字符引用的“源编码”,或类似的东西。