Java用eclipse写了一个复制的练习题,为什么全是乱码呢?

如题所述

默认不支持中文,你需要设置一个语言编码:
原因:
你的文件编码默认是ANSI编码。
不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。
不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。
如果你的系统是非中文的,你的ANSI对应着相应的编码。当读取一个文件中的中文时,就会出现乱码。当然通过FileWriter写入另一个文件时,也会是乱码。(因为问题出在读取上)

解决办法:
1 通过另一个节点流FileInputStream转码。
InputStreamReader isr = new InputStreamReader(new FileInputStream(file), "GBK"); //或GB2312,GB18030
BufferedReader read = new BufferedReader(isr);
2 如非要用FileReader的话,可以将要读取的文件改为通用的编码(如UTF-8).如txt的文件可以在另存为中设置编码。然后读取 显示 写入都是正常的。
温馨提示:答案为网友推荐,仅供参考