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

URLを共有できますか?あなたは 'Jsoup.connect(receivingdata).header(" Accept-Language "、" ar ")を試すことができます。タイムアウト(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%da%af%db%8c-%d8%b7%d8%b1%d8%a7%d8%ad%db%8c-%d8%af%d8%a7% d8%ae%d9%84%db%8c/ – erfan

答えて

0

これほど多くの試行を経て、私はcantをjsoup設定で認識しています。 webView.loadData(html, mime, encoding);の代わりにwebView.loadDataWithBaseURL(null,html, mime, encoding,null);を使用して、簡単に任意の言語を表示してください。

0

これは、HTTPレスポンスのContent-Typeヘッダーにないcharset属性に関連していると思います。 Jsoupは、HTMLを解析するときにプラットフォームのデフォルトの文字セットを使用するため、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())からアンドロイドステートへの提案は{for(org.jsoup.nodes.Nodeノード:elements.childNodes()){ – erfan

関連する問題