4

我正在使用 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);
4

2 回答 2

2

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

你可以

  • -Dfile.encoding=UTF-8在您的 JVM 起始行上指定
  • 使用HtmlCleaner.clean()接受字符集的重载

    TagNode tagNode = new HtmlCleaner(props).clean(file, "UTF-8");
    

    (如果您在项目中有 Google Guava,您可以将Charsets.UTF_8其用于常量)

  • 使用HtmlCleaner.clean()接受您已经使用正确字符集构建的 InputStreamReader 的重载。
于 2012-04-25T15:00:27.933 回答
0

您可以更改UTF-8UTF-16.

它将支持最大字符数。

于 2012-04-25T09:47:28.613 回答