有一些文件index.html(以UTF-8保存):
<html>
<head></head>
<body>
<h1> THE TITLE </h1>
Please click <a href="url"> here </a>
<br> ... Some text... <br>
Image: <img src="nature.png"/>
<br> ... Some another text... <br>
Image2: <img src="nature2.png" />
</body>
</html>
我需要获取包含在BODY标记内的所有文本,修改它并保存。所以我喜欢这个:
File input = new File("html/input.html");
Document doc = Jsoup.parse(input, "UTF-8", "");
Elements body = doc.select("BODY");
//do some manipulations with the data and print it
System.out.println(body.html());
结果是:
?
<h1> THE TITLE </h1> Please click
<a href="url"> here </a>
...
没关系,除了开头的问号。我怎么能避免呢? 当然我可以从结果字符串中删除它)但我想了解这是什么问题。
答案 0 :(得分:0)
首先,您需要制作一个理解UTF-8
的PrintStream:
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(body.html());
然后尝试将输出重定向到文件,并在将其作为UTF-8
读取时查看是否仍有垃圾。
如果没有,那么你的控制台根本就不是UTF-8
而且不知道如何处理它。