Ведущий "?" символ в UTF-8 - PullRequest
       23

Ведущий "?" символ в UTF-8

0 голосов
/ 14 февраля 2012

Существует некоторый файл 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 голосов
/ 14 февраля 2012

Прежде всего вам нужно создать PrintStream, который понимает UTF-8:

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

Затем попробуйте перенаправить вывод в файл и посмотреть, есть ли еще мусор при чтении его как UTF-8.

Если нет, то ваша консоль просто не UTF-8 и не знает, как с ней справиться.

...