2010-07-01 14 views
5

मैं HTML फ़ाइलों को लोड और पार्स करने के लिए, Jsoup नामक एक HTML पार्सर का उपयोग कर रहा हूं। समस्या यह है कि जिस वेबपृष्ठ को मैं स्क्रैप कर रहा हूं उसे ISO-8859-1 वर्णसेट में एन्कोड किया गया है जबकि एंड्रॉइड UTF-8 एन्कोडिंग (?) का उपयोग कर रहा है। इसका परिणाम कुछ वर्णों में प्रश्न चिह्न के रूप में दिख रहा है।मैं स्ट्रिंग को एंड्रॉइड में यूटीएफ -8 में कैसे परिवर्तित करूं?

तो अब मुझे लगता है कि मुझे स्ट्रिंग को यूटीएफ -8 प्रारूप में परिवर्तित करना चाहिए।

अब मुझे एंड्रॉइड एसडीके में CharsetEncoder नामक इस कक्षा को मिला है, जो मुझे लगता है कि मेरी मदद कर सकता है। लेकिन मैं यह समझ नहीं सकता कि अभ्यास में इसे कैसे कार्यान्वित किया जाए, इसलिए मुझे आश्चर्य है कि व्यावहारिक उदाहरण के साथ कुछ मदद मिल सकती है।

अद्यतन: कोड डेटा पढ़ने के लिए (Jsoup)

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

आप एक HTML दस्तावेज़ को पढ़ने के लिए इस्तेमाल किया कोड पोस्ट कर सकते हैं? – yanchenko

+0

ठीक है, मैंने अपनी पोस्ट अपडेट की है। – droidgren

उत्तर

6

आप एक बाइट [] में पेज पढ़ने और फिर स्ट्रिंग वस्तुओं पार्स करने के लिए jSoup तरीकों का उपयोग करके एंड्रॉयड आपके लिए काम करने दे सकते हैं।

सही स्ट्रिंग 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 
संबंधित मुद्दे

 संबंधित मुद्दे