我遇到一个由 JSOUP 解析为 <script>
的 UTF-8 文档的问题标签
JSOUP 转换:
<html>
<head>
<title>éà</title>
</head>
<body>
éà
<script>
var x='éà';
</script>
</body>
</html>
<html>
<head>
<title>éà</title>
</head>
<body>
éà
<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 Lang有escaping / unescaping的方法HTML
关于javascript - jsoup 将 utf-8 字符转义为 é ...等...不在 <script> 标签中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12243866/