我们正在做以下事情:
- 使用某种指定的编码打开文件阅读器。
- 读入每一行,将其解析为 CSV。
对于 CSV 数据中的某些列,将其传递给 JSoup 以清除 HTML,如下所示:
public String apply(@Nullable String input) { Document document = Jsoup.parse(input); return document.text(); }
这很好用,除非存在 numeric character references ,例如
。似乎正在发生的事情是,由于我们必须在确定编码后调用 JSoup(以使 CSV 解析工作),当 JSoup 开始将硬编码字节转换为字符时,我们正在工作使用错误的字符集。字节 160 (0xa0) 是 windows-1252 中的不间断空格,但不是有效的 Unicode 字符,因此当 JSoup 将数字字符引用替换为字节时,会为我们提供错误数据。
有解决办法吗?它需要为 JSoup 提供数字字符引用或类似内容的“源代码编码”。
最佳答案
关于java - 数字字符引用的 JSoup 编码问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12724470/