2017-02-22 61 views
0

Мое приложение подключается к Интернету и счищает страницу, чтобы получить html, чтобы получить такие вещи, как изображение и текст. Однако я заметил, что некоторые пунктуации фактически преобразуются в десятичный код в unicode, так или иначе, чтобы остановить это?InputStream конвертирует пунктуацию в Юникод

public class DownloadPage extends AsyncTask<String, Void, String> { 

    public interface PageResponse { 
     void processFinish(String output); 
    } 

    private PageResponse delegate = null; 

    public DownloadPage(PageResponse delegate){ 
     this.delegate = delegate; 
    } 

    @Override 
    protected String doInBackground(String... urls) { 
     URLConnection connection; 
     try { 
      URL url = new URL(urls[0]); 

      connection = url.openConnection(); 

      String html; 
      InputStream inputStream = connection.getInputStream(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream)); 
      StringBuilder str = new StringBuilder(); 
      String line; 
      while ((line = reader.readLine()) != null) { 
       str.append(line); 
      } 
      inputStream.close(); 
      html = str.toString(); 

      return html; 

     } catch (MalformedURLException e) { 
      e.printStackTrace(); 
      return "Failed"; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return "Failed"; 
     } 
    } 

    @Override 
    protected void onPostExecute(String s) { 
     super.onPostExecute(s); 
     delegate.processFinish(s); 
    } 
} 

Это страница Я получаю информацию из, https://www.looemusic.co.uk/news/.

This is what comes up with this code.

ответ

0

Если вы уверены, что проблема с InputStream, а не HTML рендеринга себя, то вы можете установить InputStreamReader в Charset ваш:

new InputStreamReader(inputStream, Charset.UTF-8); 

Это Charset от java.nio .charset.

Если это не удается, вы можете проверить, не связана ли проблема с кодировкой вашего клиента. Поместите этот тег в вашем HTML файле:

Для HTML 5:

<meta charset="UTF-8"> 

Для HTML 4:

<meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> 

Если вы хотите использовать другую кодировку вместо UTF-8, то просто изменить имена в коде!

+0

Не нравится Charset.UTF-8. Это не вариант –

 Смежные вопросы

  • Нет связанных вопросов^_^