如果源网页是GBK字节流,在程序端接收时的inputstream得到的字节数组的编码方式肯定是GBK字节流,即源网页是什么编码方式的字节流,程序端接收到的字节流的编码方式肯定是相同的。因此,只要在程序端解析出该流实际的编码方式即可将该流获得的源网页的字节数组转化成正常的编码显示形式。即算“解码--解析编码”的过程。
解析字节流的编码主要有三种方式,
一,通过http header中的content_type中的charset来获得,该编码是最准确的。
二,通过得到源网页的meta的charset来获得编码。
三,通过智能探测,如cpdetector,它是目前口碑最好的java实现的智能探测编码,是基于统计实现的,所以注定会有一定的错误率.