用JAVA读取一个用GBK编码的文本文件时,需要跳过一段字节,比如1000 从第1001个字节开始读取。 那么在这儿就有可能出现乱码, new String(字节数组,1000,"gbk");
因为第1001个字节可能是一个字符的高字节,有可能是上一个字符的低字节,如过是高字节那么就正常,反之new String(字节数组,1000,"gbk")这个构造的字符窜就会出现乱码,
这个问题困惑住小弟很久了, 请教哪位仁兄或前辈给予指教,谢谢!
这是目前我查到的一点资料:\
GBK的整体编码范围是为0x8140-0xFEFE,不包括低字节是0×7F的组合。高字节范围是0×81-0xFE,低字节范围是0x40-7E和0x80-0xFE。
if 0x81&=ch1&=0xFE and (0x40&=ch2&=0x7E or 0x7E&=ch2&=0xFE): #is gb char 这个语句只能判断这两个字节所表示的字符是不是一个GBK字符 而不能区分出我所遇到的问题.