2016-12-29 105 views
0

想要顯示特定的網絡div。我的代碼是正確的,並且可以爲英語工作,但例如,即使沒有固定在標準位置,也不能使用阿拉伯語言。jsoup不支持其他語言?

這是我的代碼:

public class card_activity extends AppCompatActivity { 

public WebView webView; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.card_activity); 

     Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar); 
     setSupportActionBar(toolbar); 

     Bundle b = getIntent().getExtras(); 
     final String receivingdata = b.getString("Key"); 


     webView=(WebView)findViewById(R.id.web); 
     webView.getSettings().setJavaScriptEnabled(true); 


     new AsyncTask<Void, Void, String>() { 
      @Override 
      protected String doInBackground(Void... voids) { 
       String html = ""; 
       try { 
        Document document = Jsoup.connect(receivingdata).timeout(20000).get(); 
        Element elements=document.select("div.base-box:nth-child(2)").first(); 
        html = elements.toString(); 
       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
       return html; 
      } 
      @Override 
      protected void onPostExecute(String html) { 

       String mime = "text/html"; 
       String encoding = "utf-8"; 
       webView.loadData(html, mime, encoding); 

      } 
     }.execute(); 
} 
} 

,這我的另一種語言的結果: enter image description here

如何能顯示人坐在固定的位置和正確的語言的一部分?

+0

你可以分享網址嗎?您可以嘗試'Jsoup.connect(receivingdata).header(「Accept-Language」,「ar」)。timeout(20000).get();' –

+0

@HigherCoding不起作用。 http://memaraneha.ir/%db%8c%da%a9%d9%be%d8%a7%d8%b1%da%86%da%af%db%8c-%d9%87%d9%85% D8%A7%D9%87%D9%86%達%AF%分貝%8C-%D8%B7%D8%B1%D8%A7%D8%廣告%分貝%8C-%D8%AF%D8%A7% d8%ae%d9%84%db%8c/ – erfan

回答

0

經過這麼多嘗試我認識不到這樣做與jsoup設置。只需使用webView.loadDataWithBaseURL(null,html, mime, encoding,null);而不是webView.loadData(html, mime, encoding);,並顯示任何語言簡單!

0

我認爲這涉及HTTP響應Content-Type頭中缺少的charset屬性。在解析HTML時,Jsoup將使用平臺默認字符集,因此您需要將URL作爲InputStream讀取,並在Jsoup parse()方法中手動指定字符集。

Document document = Jsoup.parse(new URL(receivingdata).openStream(), "ISO-639-2", url); 
Element elements=document.select("div.base-box:nth-child(2)").first(); 
for (Node node : elements.childNodes()) { 
    if (node instanceof TextNode) { 
     System.out.println(((TextNode) node).text().trim()); 
    } 
} 
+0

什麼是url(文檔中的最後一個參數)?和(節點節點:elements.childNodes())到android sutido建議變爲{for(org.jsoup.nodes.Node node:elements.childNodes()){ – erfan