解决编译器中的编码问题

在使用命令行对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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值