é显示为é 在java中进行dom转换之后

sta*_*n10 9 java dom

我正在尝试将HTML字符串转换为dom以进行一些dom级别更改并将其转换回String.HTML是法语,é等字符显示为é转换后转换后的字符串.

TransformerFactory transformerFactory = TransformerFactory.newInstance();
Transformer transformer = transformerFactory.newTransformer();
DOMSource source = new DOMSource(doc);

String modifiedContent = "";
StringWriter writer = new StringWriter();
StreamResult result = new StreamResult(writer);
transformer.transform(source, result);
modifiedContent = writer.toString();
Run Code Online (Sandbox Code Playgroud)

"Résultatsderecherche"是一个字符串,在dom转换为String之后," Résultats de recherche"就是结果.

我把它送到FOP处理器把它转换成pdf所以,我需要原始形式的字符.

Arn*_*ier 2

在我看来,DOMSource 将字符保留为 html 形式很正常。

您可以使用Jakarta 库 unescape html 方法将 html 字符转换回常规字符串。在你的情况下,你应该只添加这一行:

String unescapedHtml = StringEscapeUtils.unescapeHtml4(modifiedContent);
Run Code Online (Sandbox Code Playgroud)

确保将正确的Maven 依赖项添加到您的项目中。

PS Maven Central 上似乎有一个较新版本的库,但我找不到相关的 javadoc。