URLからのコンテンツをテキストビューで表示する必要があります。このURLのコンテンツは、英語以外の言語でのプレーンテキスト(メタデータなし)です。私は、UTF-8エンコーディングでは、InputStreamReader使用してコンテンツを読んでいますアンドロイドデバイス上でISO-8859でエンコードされたテキストを表示する方法
URL url = new URL(url);
URLConnection urlConnection = url.openConnection();
inputStream = new BufferedInputStream(urlConnection.getInputStream());
BufferedReader reader = new BufferedReader(new InputStreamReader(
urlConnection.getInputStream(), "Charset.forName(UTF-8"));
StringBuilder sb = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb.append(line);
}
return sb.toString();
テキスト表示コード:
textView.setText(text);
しかしテキストは、すべての文字化けが登場、私はGoogleで検索し、最終的にテキストはISO-である推測8859_1で、InputStreamReaderのエンコーディングをISO-8859_1に変更しましたが、テキストは文字化けしていました。
私はGoogleで検索し、最終的にTextViewのコードを変更することは、実際に
textView.setText(new String(text.getBytes("ISO-8859-1"), "UTF-8"));
を働くことがわかったInputStreamReaderに文字セットを変更して動作しなかった理由私の質問は、1ですか? また、2.なぜテキストビューの変更が機能したのか分かりません。テキストはUTF-8形式で読み込まれました。なぜISO-8859を使用してテキストをバイトに変換し、UTF-8で再度エンコードするのですか?
誰かがその上に何か光を当てることができますか?または何が起こっているのかを理解するために読むことができるテキストかもしれません。