2010-07-01 16 views
5

HTML dosyalarını yüklemek ve ayrıştırmak için Jsoup adlı bir HTML ayrıştırıcısı kullanıyorum. Sorun, UTF-8 kodlamasını (?) Kullanırken, kazıma yaptığım web sayfasının ISO-8859-1 karakter kümesinde kodlanmasıdır. Bu, bazı karakterlerde soru işareti olarak gösteriliyor.Android'de bir dizeyi UTF-8'e nasıl dönüştürebilirim?

Yani şimdi ben UTF-8 biçiminde dizesi dönüştürmek gerekir sanırım.

Şimdi ben bana yardımcı olabilir sanırım Android SDK'deki CharsetEncoder denilen bu Class, bulduk. Ama bunu pratikte nasıl uygulayacağımı anlayamıyorum, bu yüzden pratik bir örnekle yardım edip edemeyeceğini merak ediyorum.

GÜNCELLEME: Kod Bir byte [] içine sayfayı okuma ve Dize nesneleri ayrıştırma için jSoup yöntemleri kullanarak Android sizin için çalışma yapalım yapabilirsiniz (Jsoup)

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

Bir html dokümanı okumak için kullanılan kod gönderir misiniz? – yanchenko

+0

Tamam, Gönderiyi güncelledim. – droidgren

cevap

6

veri okumak için.

Doğru String constructor'u kullanarak sunucudan okunan verilerden dize oluştururken kodlamayı belirtmeyi unutmayın.

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 
İlgili konular