在学习Java IO的输入输出流的时候遇到了一个问题,就是无论用BufferedReader还是Scanner输入中文,在控制台输出的时候都会出现乱码的情况,而且不管在Window-Preferences中怎么改变编码方式都无效(包括UTF-8和GBK)。

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Demo22 {
	public static void main(String args[]) throws Exception {
		BufferedReader buf = null;
		buf = new BufferedReader(new InputStreamReader(System.in));
		String str = null;
		System.out.println("请输入内容:");
		try {
			str = buf.readLine();
		} catch (Exception e) {
			e.printStackTrace();
		}
		System.out.println("输入的内容为:" + str);
	}
}

后来发现在Run Configurations里的Common中将编码方式改成GBK就正常了。

以上是测试的代码:

java 控制台 中文 乱码 java控制台输出乱码_System

java 控制台 中文 乱码 java控制台输出乱码_编码方式_02

运行结果:

java 控制台 中文 乱码 java控制台输出乱码_java_03