领导 ”?” UTF-8中的符号

时间:2012-02-14 09:26:29

标签: utf-8 html-parsing jsoup

有一些文件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> 
...

没关系,除了开头的问号。我怎么能避免呢? 当然我可以从结果字符串中删除它)但我想了解这是什么问题。

1 个答案:

答案 0 :(得分:0)

首先,您需要制作一个理解UTF-8的PrintStream:

 PrintStream out = new PrintStream(System.out, true, "UTF-8");
 out.println(body.html());

然后尝试将输出重定向到文件,并在将其作为UTF-8读取时查看是否仍有垃圾。

如果没有,那么你的控制台根本就不是UTF-8而且不知道如何处理它。