解决Java编译错误: 编码GBK的不可映射字符

在编码为UTF-8的Eclipse中书写的代码程序能正常运行,但在控制台下,使用javac Test.java指令编译程序报错:编码GBK的不可映射字符。
解决Java编译错误: 编码GBK的不可映射字符

解决办法

  1. 用文本编辑器,如记事本打开文件,并将其另存为ANSI编码,然后执行javac Test.java即可。
    解决Java编译错误: 编码GBK的不可映射字符
  2. 运行时指定编码方式,使用javac -encoding UTF-8 Test.java也可以编译成功。

补充

ANSI是一种字符代码,为使计算机支持更多语言,通常使用 0x00~0x7f 范围的1 个字节来表示 1 个英文字符。超出此范围的使用0x80~0xFFFF来编码,即扩展的ASCII编码。不同的国家和地区制定了不同的标准,由此产生了 GB2312、GBK、GB18030、Big5、Shift_JIS 等各自的编码标准。在简体中文Windows操作系统中,ANSI 编码代表 GBK 编码。但需要注意,不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。