2016-12-29 99 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