ここに入力する前に他のスタックを検索しましたが、同様のものは見つかりませんでした。次のようなテキストを含むさまざまなutf-8 Webページをスクレイピングする必要があります
「Oggi è una bellissima giornata」
問題は文字「è」にあります
このテキストを jtidy および xpath クエリ式で抽出し、次のように変換します
byte[] content = filteredEncodedString.getBytes("utf-8");
String result = new String(content,"utf-8");
ここで、filteredEncodedString には、「Oggi è una bellissima giornata」というテキストが含まれています。この手順は、これまでに分析されたほとんどの Web ページで機能しますが、場合によっては utf-8 文字列を抽出しません。テキストが類似しているため、ページのエンコードは常に同じです。
9月14日編集
utf-8エンコーディングでページを取得するために、コードを次のように変更しました。
URL url = new URL(currentUrl);
URLConnection conn = url.openConnection();
conn.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-GB; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13 (.NET CLR 3.5.30729)");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), getEncode()));
String line="";
String domString="";
while((line = in.readLine()) != null) {
domString+=line.toString();
}
byte[] bytes = domString.getBytes("UTF-8");
in.close();
return bytes;
//return text.getBytes();
ここで、getEncode()はページ エンコーディング (この場合は utf-8) を返します。しかし、私はまだ ì または é が正しく読み取られていないことに気付きました。このコードに何か問題がありますか?再度、感謝します!
10月2日編集
このコードはうまくいくようです。問題は、私が投稿しなかった Dom ドキュメントの作成 (これについては申し訳ありません!) にあり、上記のメソッドからバイトが返されました。