请教大侠一个问题,这个问题困扰了我好久,就是 java 读取 txt 文件乱码,这种乱码只是个别字符乱码,而不是全部乱码,该 txt 文件生成时使用 gbk 编码,使用 win 记事本打开后一切正常,但是使用 java 读取后总有个别字符发生乱码(多部分为一些汉字),我一般使用如下方式读取文件:
InputStream is = new FileInputStream("xxx.txt");
byte[] tmp = new byte[512];
int len;
StringBuilder content = new StringBuilder();
while((len = is.read(tmp)) != -1){
content.append(new String(tmp, 0, len, "GBK"));
}
is.close;
请问大侠到底是哪里出了问题,是不是程序读取的方法有些问题,谢谢了!
你读取的是字节,一个汉子单个字节表示不了的,你读取的时候有些被截断了,自然出问题了,还是用reader指定编码读取吧,如ls。######谢谢了,多谢您的指点,问题解决了。######+1######应该是编码不一致的问题,你可以查看一下txt文件的编码,注意到程序中你用的是GBK######gb2312 gb18030######
用InputStreamReader来转成BufferedReader来读取试试。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。