Я использую HtmlUnit для выполнения некоторого Javascript в файле HTML. Дело в том, что Javascript может быть любым, например document.querySelector().
При запуске document.querySelector() через executeJavaScript() для получения строковых данных из 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.addRequestHeader("Accept-Encoding", "utf-8");, но это не сработало.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Проблема здесь в источнике файла. Есть информация об используемой кодировке при чтении простого файла с диска. HtmlUnit обрабатывает этот случай так же, как если бы веб-сервер не предоставляет никакой информации о кодировке как часть ответа. В этих случаях HtmlUnit (как и настоящие браузеры) читает байты файла, используя кодировку StandardCharsets.ISO_8859_1.
В качестве простого решения напишите ваш файл в кодировке ISO_8859_1.
Не могли бы вы открыть проблему HtmlUnit (github.com/HtmlUnit/htmlunit) и предоставить образец файла.