我大概知道为啥会和字数有关系。因为java里面,一个字符串最长就是65536个字节,注意是字节!而一个汉字至少有两个字节,所以三万多个汉字就可能超过字符串能容纳的最大值。于是在解码的时候因为缺少更多的信息而解码出错。 至于解决方法,思路就是在适当的地方分割字符串,用多个字符串(String[] 或者ArrayList)来存放这些文字。至于哪里分割,可以选择有换行的地方分割。也就是说,你用BufferedReader.readLine每次读入一行,放入字符串数组中。这样就行了
乱码跟字数有关?个人觉得更可能跟编码格式有关吧