Java乱码问题

起因

问题一:Java文件中含有中文,在编译时报错

源文件中存在中文(注释中的中文也会影响),使得编译过不去。


问题二:Java文件中含有中文,在运行时出现乱码

还未解决

解决方法

原因

先要理解Java的编译规则

1.由于JDK是国际版在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe首先获得我们操作系统默认采用的编码格式.(DOS输入chcp ,可以得到操作系统的代码页信息),


2. 然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。

3. 紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。

当我们不加设置就编译时,相当于使用了参数:javac -encoding gbk XX.java,当然就会出现不兼容的情况。

不兼容的原因操作系统为GBK,Java编译为Unicode,因而在读取文件时会由于读取文件时的编码方式不一样而导致中文编译输出时出现乱码。

解决方法1

更改java编译时的编码。统一成utf-8

 

 
posted @ 2022-09-02 13:39  精通+1  阅读(343)  评论(0)    收藏  举报