用java程序去爬网页上的内容,或者读取磁盘文件时,如何可以正确的解码;因为网页上用的解码,跟开发平台解码不一样,所以会出现乱码
原问题:如果有一个很大的文件(字节流,内含中文)不能一下读进内存,如何才能把其内容正确的显示在操作台上(不乱码);
我的方法是分段读取,然后打印,可是会乱码
原问题:如果有一个很大的文件(字节流,内含中文)不能一下读进内存,如何才能把其内容正确的显示在操作台上(不乱码);
我的方法是分段读取,然后打印,可是会乱码
byte [] buffer = new byte[ 1024 ];
while ( true ) {// 循环读取流里的数据
int len = fis.read( buffer );
if ( -1 == len ) {// 如果已经读到文件末尾
break;
}
String str = new String( buffer, 0, len, "utf-8" );
System.out.println( str );
}可是我就是担心出现这种情况,如果读取的这个1024位字节的最后一个字符正好是一个中文的一半(一个中文由两个字节组成),而它的另一半要下次才读到,那打印的时候本次也是乱码,然后下一次因为也只是读到一半所以应该也是乱码呀;我对系统编码跟程序编码的问题可能还是不大理解,请各位高手详细讲解一下一下呀,谢谢