用 InputStreamReader 将一个ASCII 编码的文件以UTF-8读出,中文乱码,为什么改为GBK却不会

将一个 ASCII 编码的文件使用 InputStreamReader 转为utf-8 读出,输出的中文字符是乱码,但用gbk、gb2312读出却没有问题
#
#
原代码:

public static void main(String[] args) throws IOException {
        String filePath = "d:\\1\\a.txt";
        //
        //指定编码为 utf-8
        InputStreamReader isr = new InputStreamReader(new FileInputStream(filePath),"utf8");
        BufferedReader br = new BufferedReader(isr);

        String str = br.readLine();
        System.out.println(str);
        br.close();

    }
#
#
结果:

���,wordgood!hello

进程已结束,退出代码0

使用 gbk 进行转码读取就没有乱码现象,这是什么情况

你文件里面的编码是啥,保持一样,就不会乱码