注册 登录
编程论坛 JAVA论坛

读取文件中文乱码,英文可以

逆水寒刘 发布于 2016-03-25 20:50, 3817 次点击
程序代码:
public static void main(String[] args) throws Exception{
    File afile=new File("C:/Users/liudenghong/Downloads/b.txt");
    FileInputStream red=new FileInputStream(afile);
    InputStreamReader in=new InputStreamReader(red,"UTF-8");
    BufferedReader buf=new BufferedReader(in);
    String line=buf.readLine();
    while(line!=null){
        System.out.println(line);
        line=buf.readLine();
    }
}
9 回复
#2
逆水寒刘2016-03-25 22:04
代码没有问题,不知道什么情况,又新建了一个文件txt,把原内容粘贴过去,可以正常读取。但是换回原文件就不行。真是醉了
#3
林月儿2016-03-26 09:16
InputStreamReader in=new InputStreamReader(red,"UTF-8");
#4
逆水寒刘2016-03-26 20:26
回复 3楼 林月儿
没有错啊,可是怎么就读出来的是乱码呢?
#5
逆水寒刘2016-03-26 21:29
回复 3楼 林月儿
同样的程序,有的TXT文件能够正确读出,有的却只能显示出乱码?
#6
林月儿2016-03-27 09:10
关于字符集编码问题,读出乱码应该是中文在编码所占字节数的原因吧
#7
逆水寒刘2016-03-27 20:38
回复 6楼 林月儿
但是我遇到的是有些Txt不能正常读取,但是有一些却可以读取。不知道是不是跟文本有关。
#8
jinjoxie2016-03-28 11:01
文件有自己的编码格式的,如果你的文件格式是UTF-8,读文件的内容就没问题,如果文件格式非UTF-8,那读取的内容就会乱码。
用记事本打开TXT文件,点 另存为, 在下面就能看到文件的编码格式的。
文件的操作一定要确认文件的编码格式才可以确保乱码问题
#9
申缘2016-03-29 23:24
1、使用带缓存的字节输入流BufferedInputStream类接受键盘输入。
2、中文是以两个字节为单位存储的,如果你不小心多打一个空格出来,就有可能出现中文乱码的情况。
#10
xingyue4252016-04-08 15:42
你需要注意首先是你要读取的文件的内容的保存编码格式,然后就是你的程序默认的读取编码格式。你最好把你的项目的wokspace那个编码设置成utf-8,然后再把文件保存编码格式设置成utf-8,这样读取基本就没问题了。
1