個人的なプロジェクトにkat.crのRSSフィードを使用しています。私はローマのフレームワークを使ってフィードを読み込もうとしましたが、重大な問題に遭遇しました。特定のXMLデータが文字化けする
他のすべてのフィード私はローマを使用しようとしました(そして、より基本的な、フィードを読む方法は)しかし、次のフィードは、文字エンコーディングに関連する例外をスローし続けました。
https://kat.cr/usearch/Arrow%20S04E21/?field=seeders&sorder=desc&rss=1
私は、データを受け取ったかを確認するには、次のメソッドを作成したように見えた:他のすべてのフィードが完全に表示しながら、データ化けで
public static void saveXML(String url) throws IOException {
Client client = ClientBuilder.newClient();
Response r = client.target(url).request(MediaType.TEXT_PLAIN_TYPE).get();
PrintWriter out = new PrintWriter("XML.txt");
String sXML = r.readEntity(String.class);
out.print(sXML);
out.close();
}
上記のフィード結果。 charsetが強制的にUTF-8になっても、すべてのブラウザで完全に表示されるのはなぜですか?
私はHexplorerの 'XML.txt'ファイルを見て、ファイル全体でUTF-8エンコードバイトシーケンスを確認しました。
私は完全に失われています、どんな助けも大いに感謝するでしょう。
それはまさにそれでした。ご助力ありがとうございます。あなたが私に尋ねても構わないのであれば、それはgzipで圧縮されているとはどういうことでしたか?あなたはあなたの答えであなたが提供したバイトシーケンスを使ってそれを特定しましたか? –
@fakeskuHまあ、私はブラウザのURLに行きました。うまくいきましたので、あなたのコード(またはローマの図書館)の中の何かが正しく処理されていないと思うようになりました。そのウェブサイトのHTTPヘッダーを見ると、ヘッダーに「content-encoding:gzip」というヘッダーがあることがわかりました。私はテストリクエスト/レスポンスの周りに 'GZIPInputStream'を投げただけで、うまくいきました! –
私は何かを逃したことを知っていた。再度、感謝します! –