Javascript HtmlUnit获取编码错误的字符串

Javascript HtmlUnit获取编码错误的字符串,javascript,java,htmlunit,Javascript,Java,Htmlunit,我正在使用HtmlUnit在HTML文件中执行一些Javascript。关键是Javascript可以是任何东西,比如document.querySelector 当通过executeJavaScript运行document.querySelector以从HTML获取字符串数据时,它会搞乱编码 例如:Interés成为InterÃs 有没有一种聪明的方法可以通过配置HtmlUnit对象来转换它 一些代码: webClient = new WebClient(BrowserVersion.CHRO

我正在使用HtmlUnit在HTML文件中执行一些Javascript。关键是Javascript可以是任何东西,比如document.querySelector

当通过executeJavaScript运行document.querySelector以从HTML获取字符串数据时,它会搞乱编码

例如:Interés成为InterÃs

有没有一种聪明的方法可以通过配置HtmlUnit对象来转换它

一些代码:

webClient = new WebClient(BrowserVersion.CHROME);
webClient.getOptions().setThrowExceptionOnScriptError(false);
webClient.getOptions().setCssEnabled(false);
webClient.getOptions().setAppletEnabled(false);
webClient.getOptions().setDownloadImages(false);

htmlPage = this.webClient.getPage("file:/" + htmlFile.getAbsolutePath());

ScriptResult scriptResult = htmlPage.executeJavaScript(someJavascriptFunction);

//This scriptResult.getJavaScriptResult() already has encoding issues

我尝试设置webClient.addRequestHeaderAccept-Encoding,utf-8;但是它不起作用。

这里的问题是文件源。从磁盘读取普通文件时,会有有关所用编码的信息。HtmlUnit处理这种情况的方式与web服务器在响应中不提供任何编码信息的方式相同。在这些情况下,类似HtmlUnit的真实浏览器使用StandardCharsets.ISO_8859_1编码读取文件字节


作为简单的解决方案,请编写ISO_8859_1编码的文件。

请打开HtmlUnit问题并提供一个示例文件。