我需要在文本视图中显示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编码呢?
有人可以对此有所了解吗?或者可能是一些我可以阅读的文字来理解正在发生的事情。