我需要在文本視圖中顯示url中的內容。這個網址的內容只是非英文語言中的純文本(無元數據)。我讀的InputStreamReader使用使用UTF-8編碼的內容,如何在Android設備上顯示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"));
我的問題是,1.爲什麼改變InputStreamReader的字符集沒有工作? 另外,2.我不明白爲什麼文本視圖更改工作。文本是以UTF-8格式讀取的,爲什麼我們使用ISO-8859將文本轉換爲字節,然後再以UTF-8編碼呢?
有人可以對此有所瞭解嗎?或者可能是一些我可以閱讀的文字來理解正在發生的事情。