レコードの取り出し方法のHTMLページに適切なエンコーディングを使用Java?

StackOverflow https://stackoverflow.com/questions/1255730

  •  12-09-2019
  •  | 
  •  

質問

どのように読んだHTTPストリームのHTMLページからページのエンコーディング?

こちらはコードフラグメントを使っているのHTTPストリームです。 InputStreamReader のエンコードオプション引数が、今ではもうほとんどないアイデアを獲得するのです。

URLConnection conn = url.openConnection();
InputStream is = conn.getInputStream();
BufferedReader d = new BufferedReader(new InputStreamReader(is));
役に立ちましたか?

解決

Webページを取得する合理的に複雑なプロセスです。このようのHttpClient のようにライブラリが存在する理由です。私のアドバイスは、あなたがそうでなければ、本当に魅力的な理由がない限り、HttpClientをを使用することです。

他のヒント

接続はスルー設立している場合は、

のURLConnection CONN = url.openConnection();

あなたは(url.getContentEncodingスルー符号化方式の名前を取得することができます)ので、InputStreamReaderの(この文字列を渡す)ので、コードは

のようになります。

のBufferedReaderのD =新しいBufferedReaderの(新しいInputStreamReaderの(ある、url.getContentEncoding()));

短い答えである<のhref = "http://java.sun.com/j2se/1.5.0/docs/api/java/net/URLConnection.html#getContentEncoding%28%29" のrel = "nofollowをnoreferrer "> URLConnection.getContentEncoding()の。正しい答えは、あなたがいないと説得力のある理由がない限り、適切なサードパーティのライブラリを使用し、cletusが示唆するものである。

また同様の問題を解決した。などのその他の回答も開始さんHttpClient et al.ただし、図書館を必要とするか先にのエンコーディングしたいファイルをダウンロードしていただけます。その他、変換を取得したHTMLファイルの利益をもたらすには読めます。

このアプローチが成り立たないと思うので、エンコードをHTMLファイルのみを指定したHTMLファイルそのものです。によって、HTMLのバージョンでは、エンコードが指定された多くの方のようにXMLヘッダは、二つの異なるヘッドメタタグの要素など。またこのアプローチするには:

  1. ダウンロードファイルのコンテンツをエンコード構文解析することによって、HTMLの内容です。
  2. ダウンロードファイルの第二の時間の指定は適切なエンコーディングです。

特に解析でHTMLコンテンツのための適切なエンコーディングの文字列はエラーが発生しやすい.代わりに、からだにわからな図書館のような JSoup, まいます。その代わりにこのファイルをダウンロードによhttpclient、利用JSoupを取得するファイルです。また、JSoup提供の素敵なAPIにアクセスの異なる部分のHTMLページに直接例ページタイトルは除く)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top