解决编译器中的编码问题

来源:互联网 发布:最近好看的网络自制剧 编辑:程序博客网 时间:2024/05/16 07:46

在使用命令行对java源程序进行编译的时候,经常会出现一个错误:Demo.java:1: 错误: 编码GBK的不可映射字符,继而显示一堆的乱码。

原因是什么呢?由于JDK是国际版本(国际版本就是不论哪国人都使用这个版本的jdk)的,在编译的时候如果没有使用 -encoding 参数来指定我们源程序的编码格式,那么javac.exe首先获取我们操作系统默认采用的编码格式,也就是在编译java程序时,若不指定源文件的编码格式,jdk首先获取的就是操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式)。然后JDK将我们的源程序按照获取的操作系统的默认编码格式转换为java内部默认的UNICODE格式放入内存中,然后,javac把转换后的UNICODE格式的文件编译成.class文件。。所以判断出显示这个错误的原因你的文件的编码格式与操作系统默认的编码格式不一样 ,而你使用的命令是javac a.java而不是javac -encoding xxx a.java.


知道原因后那么解决办法也就出现了:

  1. 将文件的编码格式改为与操作系统默认的编码格式相同。通常中文为GBK。
  2. 在编译文件时使用完整的命令 javac -encoding 源文件编码格式  xxx.java


0 0
原创粉丝点击