javascript - jsoup 将 utf-8 字符转义为 é ...等...不在 <script> 标签中

标签 javascript jsoup entities

我遇到一个由 JSOUP 解析为 <script> 的 UTF-8 文档的问题标签

JSOUP 转换:

<html>
<head>
 <title>éà</title>
</head>
<body>
 éà
 <script>
   var x='éà';
 </script>
 </body>
</html>



<html>
<head>
 <title>&eacute;&agrave;</title>
</head>
<body>
 &eacute;&agrave;
 <script>
   var x='??';
 </script>
 </body>
</html>

如何防止这种情况发生?

我已经尝试过 3 种逃脱模式。

最佳答案

如果您使用 XHTML 作为转义模式,它不应转义您的 html:

final String html = "<html>"
        + "<head>"
        + "<title>éà</title>"
        + "</head>"
        + "<body>"
        + "éà"
        + "<script>"
        + "var x='éà';"
        + "</script>"
        + "</body>"
        + "</html>";

Document doc = Jsoup.parse(html, "utf-8");
doc.outputSettings().escapeMode(EscapeMode.xhtml);

System.out.println(doc);

输出:

<html>
 <head>
  <title>éà</title>
 </head>
 <body>
  éà
  <script>var x='éà';</script>
 </body>
</html>
顺便说一句。 Apache Commons Langescaping / unescaping的方法HTML

关于javascript - jsoup 将 utf-8 字符转义为 é ...等...不在 &lt;script&gt; 标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12243866/

相关文章:

javascript - 如何将 'selective-input' 设置为 Angular 中的表单字段?

javascript - 在没有实例的情况下结束 REPL 服务器

javascript - 在选中复选框之前隐藏 div

html - 如何在C中转义html实体?

javascript - 已移植到 TensorFlow.js 的预训练 TensorFlow 模型的权重是否可以在运行时通过模型对象访问?

java - 使用 jsoup 将相对链接转换为绝对链接

java - 当我有 .html 和 .css 文件时如何检查文本的 Java 颜色?

java - 从 HTML 中提取数据并格式化输出

ios - 我的核心数据实体在哪里?

c# - NHibernate 和 DTO