if(Charset.forName("UTF-8").newEncoder().canEncode(sb.toString())){
//UTF-8转GBK文本
Charset inCharset = Charset.forName("UTF-8");
Charset outCharset = Charset.forName("GBK");
ByteBuffer buffer=ByteBuffer.wrap(sb.toString().getBytes());
CharBuffer cb = inCharset.decode(buffer);
ByteBuffer outbb = outCharset.encode(cb);
CharSequence str = new String(outbb.array());
s = str.toString();
}
else
s = sb.toString();
第一句判断当前的文本sb.tostring()是否为utf-8编码
如果是utf-8编码 则进行编码转换。
进行二次修改 由于 网页上编码为GB2312的页面 实际采用编码为GBK 但是其会被Charset类的canEncode解析 所以 判断方式改为
if(!Charset.forName("GBK").newEncoder().canEncode(sb.toString())){//页面无法被GBK所解析
当页面无法被GBK 解析时采用utf-8模式 其余情况直接用GBK解析