2 yl suc yl_suc 于 2014.09.04 09:41 提问

java FileReader使用的时候不能正确的显示中文字符,希望大牛帮忙看看

下面是我的源代码,我用了下面几种方式进行编辑,运行的结果都有乱码,我真是想不明白了,请大牛帮我看看。
第一种方式编译 E:\java\8>javac -encoding utf-8 TestFileReader.java
第二种方式编译 E:\java\8>javac -encoding gbk TestFileReader.java
第三种方式编译 E:\java\8>javac -encoding gb2312 TestFileReader.java
第四种方式编译 E:\java\8>javac -encoding iso-8859-1 TestFileReader.java

import java.io.*;

public class TestFileReader{
public static void main(String[] args){
FileReader fr = null;

    try{
        fr = new FileReader("e:\\java\\8\\TestFileReader.java");
    }catch(FileNotFoundException e){
        System.out.println("没有找到制定的文件!");
        System.exit(-1);
    }


    int c = 0;//当前读取的字符
    int num = 0;//读取的字符总数
    try{
        while((c=fr.read())!=-1){
            System.out.print((char)c);
            num ++;
        }

        System.out.println("读取的字符总数:" + num );
    } catch(IOException e){
        System.out.println("读取文件错误!");
        System.exit(-1);
    }
}

}

4个回答

c920816698
c920816698   2014.09.04 10:41

E:>javac -encoding gbk TestFileReader.java

E:>chcp
活动代码页: 936
由于不能发图片
我用的window7系统默认编码是GBK的 查出来的936是表示编码为GBK
如果是其他的你在网上找一下对应的编码,其实如果你不是用的英文系统的话,默认的编码肯定是支持中文的,编译的时候根本就不需要设置编码

yl_suc
yl_suc 不加编码编译时会出错
3 年多之前 回复
u012585224
u012585224   2014.09.04 22:35

我觉得你用国际标准的ISO-8859-1编译的话,文件编码格式要选成UTF-8.

u012585224
u012585224 我不清楚这个编程软件,但是一般保存文件的时候编码格式选UTF-8
3 年多之前 回复
yl_suc
yl_suc 我用的编辑工具是notepad++,写完代码后直接保存,没有注意保存的是什么编码,和这个有关系吗?是不是我的代码中存在两种编码呢?
3 年多之前 回复
finallygo
finallygo   2014.09.10 13:38

试试inputstreamreader

greedisok124567
greedisok124567   2014.09.14 10:38

fr = new FileReader("e:\java\8\TestFileReader.java");
下面加上 InputStreamReader isr=new InputStreamReader(fr,"utf-8");//高级流,需要导包
然后把下面的fr都替换成isr就好了最后别忘了 isr.close;

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!