解决java不能输出中文问题

https://blog.csdn.net/c374963390/article/details/84806523 原文地址,不知道为什么不能快捷转发了,只能拷贝下来再发,谢谢作者!

喜闻乐见 今天还是研究HelloWold.java

这个基础的程序,今天继续昨天的研究让中文能够输出。

我开始认为我在UE里面设置保存UTF-8无DOM版的就可以随便输出任意语言了。

然后我就动手试,因为比起HelloWord还有师姐你好我更喜欢我爱中国这四个字。

大神勿喷我真是初学者-  .  -。

然后我就谨慎的又敲了一次:

public class China
{
   public static void main(String[] args)
   {
  System.out.println("我爱你中国");
    }
 }

第一次编译不通过,因为第三行里面的void main忘写了System的S小写了。。。低级啊TAT我把它们改完后还是通知我:

 

E:\作品\java基础\Day01>javac China.java
China.java:5: 警告:编码 GBK 的不可映射字符
                System.out.println("鎴戞槸涓浗浜?);
                                           ^
China.java:5: 未结束的字符串字面值
                System.out.println("鎴戞槸涓浗浜?);
                                   ^

1.错误 1.警告

嘛,于是我开始找解决方法 ,网上查:

由于JDK是国际版的,在编译的时候,如果没有用-encoding参数指定JAVA源程序的编码格式,则javac.exe首先获得操作系统默认采用的编码格式,也即在编译java程序时,若不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。

在UTF-8里,英文字符仍然跟ASCII编码一样,因此原先的函数库可以继续使用。而中文的编码范围是在0080-07FF之间,因此是2个字节表示(但这两个字节和GB编码的两个字节是不同的),用专门的Unicode处理类可以对UTF编码进行处理。

解决方法:

1.用记事本将代码保存为ANSI格式在编译。

2.在编译输出中文或者有关于中文的java文件时在cmd中输入:

javac -encoding UTF-8 ***.java

这样就能编译通过了,而且输出也是正常的中文。
————————————————
版权声明:本文为CSDN博主「c374963390」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/c374963390/article/details/84806523

你可能感兴趣的:(JAVA)