问题描述:使用命令提示符(CMD)编译写好的java程序的时候出现“编码GBK的不可映射字符”
问题截图:
问题分析:看提示就知道是代码的注释出现问题,但注释格式完全正确,那么问题就只可能是注释编码出现问题。
网上查了一下果然是注释编码出现问题。
由于JDK是国际版的,我们在用javac编译时,编译程序首先会获得我们操作系统默认采用的编码格式(GBK),
然后JDK就把Java源文件从GBK编码格式转换为Java内部默认的Unicode格式放入内存中,然后javac把转换后的
Unicode格式的文件编译成class类文件,此时,class文件是Unicode编码的,它暂存在内存中,紧接着,JDK将
此以Unicode格式编码的class文件保存到操作系统中形成我们见到的class文件。当我们不加设置就编译时,相当
于使用了参数:javac -encoding GBK Test.java,就会出现不兼容的情况。 引用自:https://www.cnblogs.com/lucky-zhangcd/p/8409810.html
解决办法:使用UTF-8进行编码
编译时输入:javac -encoding UTF-8 Wed.java (后面文件名依据自己文件名进行改变)