在Android上用HttpURLConnection获取网页内容(2)

下面这个网页上说的方法并不能每次都能获得正确的网页内容:

主要是因为受到网页内容编码(encoding)的影响,页面编码内容的编码是不确定的,可能不是utf-8。

因为在java内部是使用utf-16来表示字符的,所以在使用String保存页面内容时,会被转换为utf-16来保存,写入文件时在转换为操作系统中的默认编码,

这样导致保存文件内容的编码和html中指定的编码不一致,导致中文乱码。

另外关于InputStream.available()解释如下:

“返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数”

如果这是一个Socket的InputStream,那么它的read方法就可能导致阻塞(即表示read方法可能一直等待对方发送的数据而不返回)

available根本不是表示这个流有多长的意思,对于Socket之类的InputStream根本无法判断这个流会有多长。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wwdzzy.html