我正在使用 HtmlCleaner 库来解析/转换 Java 中的 HTML 文件。

似乎无法处理像“ÁáÉéÍíÑñÓóÚúÜü”这样的西类牙语字符

我可以在 HtmlCleaner 中设置任何属性来处理这个或任何其他解决方案吗?这是我用来调用它的代码:

CleanerProperties props = new CleanerProperties();
props.setRecognizeUnicodeChars(true);
java.io.File file = new java.io.File("C:\\example.html");
TagNode tagNode = new HtmlCleaner(props).clean(file);

最佳答案

除非指定,否则 HtmlCleaner 使用从 JVM 读取的默认字符集。在 Windows 上,这将是 Cp1512 而不是 UTF-8,这可能是出错的地方。

你可以

  • 在您的 JVM 起始行上指定 -Dfile.encoding=UTF-8
  • 使用接受字符集的 HtmlCleaner.clean() 重载
    TagNode tagNode = new HtmlCleaner(props).clean(file, "UTF-8");
    

    (如果你在项目中有谷歌 Guava ,你可以使用 Charsets.UTF_8 作为常量)
  • 使用 HtmlCleaner.clean() 重载,它接受您已经用正确的字符集构造的 InputStreamReader。
  • 10-08 08:31