Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java HTMLCLEANER处理西班牙语字符_Java_Html_Htmlcleaner - Fatal编程技术网

Java HTMLCLEANER处理西班牙语字符

Java HTMLCLEANER处理西班牙语字符,java,html,htmlcleaner,Java,Html,Htmlcleaner,我使用HtmlCleaner库来解析/转换java中的HTML文件 似乎无法处理像“ÁáÍíñÓó218;Üü”这样的西班牙语字符 我可以在HtmlCleaner中设置任何属性来处理此解决方案或任何其他解决方案吗?下面是我用来调用它的代码: CleanerProperties props = new CleanerProperties(); props.setRecognizeUnicodeChars(true); java.io.File file = new java.io.File("C:

我使用HtmlCleaner库来解析/转换java中的HTML文件

似乎无法处理像“ÁáÍíñÓó218;Üü”这样的西班牙语字符

我可以在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);

您可以将
UTF-8
更改为
UTF-16


它将支持最大数量的字符。

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

你也可以

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

    TagNode tagNode = new HtmlCleaner(props).clean(file, "UTF-8");
    
    (如果项目中有谷歌番石榴,可以使用
    Charsets.UTF_8
    作为常量)

  • 使用
    HtmlCleaner.clean()
    重载,该重载接受已使用正确字符集构造的InputStreamReader

有没有办法将编码设置为使用UTF-8?我在写入文件时使用UTF-8<代码>新的PrettyHtmlSerializer(props).writeToFile(标记节点,文件路径,“utf-8”)但是HTML文件实际上编码为UTF-8吗?是的。文件保存为UTF-8,没有BOM。如何读取?你在哪里真正看到了错误?你能确认HtmlCleaner实际上是以UTF-8的形式读取文件吗?但它们只是编码——这不会改变支持的字符数。如果HtmlCleaner读取的文件编码错误,并且UTF-16生成的BOM检测正确,这可能会有所帮助,但我怀疑这会有帮助。@Azhar你能用自己的话解释一下,为什么你认为UTF-16比UTF-8有更多的字符,以及你是从哪里得到这个想法的?@MrLister。。当我开始编写我的第一个HTML。。我对配角有意见。。。所以我让我的前辈帮我:)。。他告诉我UTF-16将支持更多角色。。如果我或我的前辈错了,请纠正我。@Azhar你的前辈错了。UTF-8支持与UTF-16完全相同的字符集:从U+0000到U+10FFFD的所有Unicode码点。(UTF-8的早期草案提供了更多的字符,但他们放弃了这个想法,转而支持与UTF-16系列兼容。)