初学Java用的记事本写源码,命令行输出Hello World成功,想输出中文,结果出现乱码。

源码:

class Hello{
	public static void main (String[] args){
	System.out.println("你好");
	}
}

显示结果如图:

中文语义代码java java编译中文_经验分享


或者编译时有中文符号,如:

System.out.println("你好!");

"你好"后面是一个中文“!”

编译结果如图:

中文语义代码java java编译中文_编码格式_02

原因:命令行编码格式和源码编码格式不同。

解决方法1:修改源码编码格式,改为ANSI。(只适用于当前程序代码,如果重写一个还需此操作)

把记事本文件另存,注意事项如图:

中文语义代码java java编译中文_中文语义代码java_03


中文语义代码java java编译中文_经验分享_04


中文语义代码java java编译中文_java_05


重新重新执行javac Hello.java

中文语义代码java java编译中文_经验分享_06


接下来输入 java Hello运行程序,成功输出中文“你好”及中文符号“!”。

中文语义代码java java编译中文_乱码_07


解决方法2:修改命令行控制台编码格式。(永久解决)

参考链接(亲测有效):

windows系统修改cmd窗口utf-8编码格式