Javac编译“ 错误: 编码 GBK 的不可映射字符 (0xBB)”原因与解决方法

我的 App2_1.java 代码如下:

public  class  App2_1{   //定义App2_1类
    public  static void  main(String[] args){ //定义主方法
        System.out.println("Hello Java!");
    }
}

 

结果,我用 javac 编译的时候,提示如下:

D:\Java>javac ./example/App2_1.java

.\example\App2_1.java:1: 错误: 编码 GBK 的不可映射字符 (0xBB)

public class App2_1{ //瀹氫箟App2_1绫?

 

.\example\App2_1.java:2: 错误: 编码 GBK 的不可映射字符 (0x95)

public static void main(String[] args){ //瀹氫箟涓绘柟娉?

 

2 个错误

javac 编译 错误: 编码 GBK 的不可映射字符 (0xBB)

 

原因:

通过上图的说明,稍微有一点编程的基础,相信大家也知道主要的原因了,主要就是编码的问题。

 

解决方法

关于 javac 编译 出现编码的问题,解决方法有如下两种:

 

第一种方法:

1、记事本打开 App2_1.java 源文件,另存为“ANSI”编码。

只要你的源文件里面有中文,都可以用“ANSI”这个编码。

java“ANSI”编码

 

2、DOS窗口再执行 javac 编译 命令:

D:\Java>javac ./example/App2_1.java

avac ./example/App2_1.java

3、上图中没有报错,为空换行。D:\Java\example 有了 App2_1.class 就算编译成功,

App2_1.class javac编译成功

 

第二种方法:

有些人可能会想,我的 App2_1.java  代码源文件,我就想设置为 UTF-8 编码。难道不行吗?又应该如何操作?具体如下:

 

1、DOS窗口直接执行 javac 编译命令:

D:\Java>javac -encoding UTF-8  ./example/App2_1.java

javac -encoding UTF-8 ./example/App2_1.java

 

2、跟上面一样,没有报任何的错误,空格换行、出来了 App2_1.class 文件就是编译成功。

 

总结:

ANSI:美国国家标准协会,系统预设的标准文字储存格式。简体中文编码GB2312,实际上它是ANSI的一个代码页936。

UTF-8:通用字集转换格式,这是为传输而设计的编码,2进制,以8位为单元对Unicode进行编码,如果使用只能在同类位元组内支持8个位元的重要资料一类的旧式传输媒体,可选择UTF-8格式。

在UTF-8里,英文字符仍然跟ASCII编码一样,因此原先的函数库可以继续使用。而中文的编码范围是在0080-07FF之间,因此是2个字节表示(但这两个字节和GB编码的两个字节是不同的),用专门的Unicode处理类可以对UTF编码进行处理。

    A+
发布日期:2021年09月11日 19:56:36  所属分类:Java
最后更新时间:2021-09-11 20:11:15
付杰
  • ¥ 159.0元
  • 市场价:398.0元
  • ¥ 129.0元
  • ¥ 119.0元
  • 市场价:199.0元
  • ¥ 59.0元
  • 市场价:99.0元

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: