在我用BufferedReader的readline()方法读取一个文件的每一行的时候,再去截取想要的中文字符时出现了乱码,当我用getBytes方法显示我读取的第一行“电信一区”的输出居然是63 53 117 -31 79 0 78 58 83,而且结果是奇数个byte!!
这是怎么回事?
自己用String s="电信一区",然后用getBytes方法的时候,经过很多编码格式(gbk,utf-8 ...)的验证都不是上面的结果啊。请高人指点!

解决方案 »

  1.   

    BufferedReader读取文件时是按照new InputStreamReader时候指定的编码方式转化字节到字符的。如果没有指定是用JVM默认的编码。我觉得可能还是文件本身是不是有别的字符,用字节方式读取文件试试看呢?
      

  2.   

    把你readLine得到字符串trim()下看看,是不是把后面的空字符串给连带上了。
    至于byte个数是奇数很正常啊,utf-8一个中文能分出2-3byte
      

  3.   

    請嘗試在創建BufferedReader時指定編碼看看:
    xBuffRead=new BufferedReader(new InputStreamReader(new FileInputStream("a.txt"),"GBK"));//UTF-8什麽的,換換看看
      

  4.   

    试过了,还是一样。不过好像中文utf-8都是3个字节。