2010-07-01 12 views
5

HTML 파일을로드하고 구문 분석하기 위해 Jsoup라는 HTML 파서를 사용하고 있습니다. 문제는 내가 긁고있는 웹 페이지가 ISO-8859-1 문자 집합으로 인코딩되어 있고 Android가 UTF-8 인코딩 (?)을 사용하고 있다는 것입니다. 이것은 일부 문자가 물음표로 나타나는 결과입니다.Android에서 문자열을 UTF-8로 변환하려면 어떻게해야합니까?

그래서 이제 문자열을 UTF-8 형식으로 변환해야합니다.

이제 Android SDK에서 CharsetEncoder이라는 클래스를 발견했습니다. 그러나 실제로 구현하는 방법을 알 수는 없으므로 실질적인 예를 통해 som help를 얻을 수 있는지 궁금합니다.

UPDATE : 코드는 바이트 []로 페이지를 읽고 다음 문자열 객체를 구문 분석에 대한 jSoup 방법을 사용하여 안드로이드 원하는 작업을 할 수 있습니다 (Jsoup)

url = new URL("http://www.example.com"); 
Document doc = Jsoup.parse(url, 4000); 
+2

당신은 HTML 문서를 읽는 데 사용되는 코드를 게시 할 수 있을까요? – yanchenko

+0

좋아요, 내 글을 업데이트했습니다. – droidgren

답변

6

데이터를 읽을 수 있습니다.

올바른 문자열 constructor을 사용하여 서버에서 읽은 데이터에서 문자열을 만들 때 인코딩을 지정하는 것을 잊지 마십시오.

4

Byte encodings and Strings

public static void main(String[] args) { 

     System.out.println(System.getProperty("file.encoding")); 
     String original = new String("A" + "\u00ea" + "\u00f1" 
           + "\u00fc" + "C"); 

     System.out.println("original = " + original); 
     System.out.println(); 

     try { 
      byte[] utf8Bytes = original.getBytes("UTF8"); 
      byte[] defaultBytes = original.getBytes(); 

      String roundTrip = new String(utf8Bytes, "UTF8"); 
      System.out.println("roundTrip = " + roundTrip); 

      System.out.println(); 
      printBytes(utf8Bytes, "utf8Bytes"); 
      System.out.println(); 
      printBytes(defaultBytes, "defaultBytes"); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 

    } // main