レコードの取り出し方法のHTMLページに適切なエンコーディングを使用Java?
-
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ヘッダは、二つの異なるヘッドメタタグの要素など。またこのアプローチするには:
- ダウンロードファイルのコンテンツをエンコード構文解析することによって、HTMLの内容です。
- ダウンロードファイルの第二の時間の指定は適切なエンコーディングです。
特に解析でHTMLコンテンツのための適切なエンコーディングの文字列はエラーが発生しやすい.代わりに、からだにわからな図書館のような JSoup, まいます。その代わりにこのファイルをダウンロードによhttpclient、利用JSoupを取得するファイルです。また、JSoup提供の素敵なAPIにアクセスの異なる部分のHTMLページに直接例ページタイトルは除く)