导航

错误:编码GBK的不可映射字符

Posted on 2022-03-19 18:38  达利园。  阅读(80)  评论(0)    收藏  举报

当编译java程序中有中文时,使用javac编译会出现此错误

把javac 文件名.java改成javac -encoding UTF-8 文件名.java即可

原因:JDK是国际版的,我们操作系统默认的是GBK编码(汉字内码扩展规范),在编译时java把GBK编码格式转化为java默认的Unicode(万国码)放入内存,然后编译成class文件。

GBK的存在是为了中国国情而创造的,专门用来解决中文编码。 

UTF8是国际编码,它的通用性比较好。

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