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

一.问题描述

在vscode编写一段java代码,Windows操作系统的命令行中运行
出现错误:编码GBK的不可映射字符
请添加图片描述代码中有一段中文注释,删掉注释后,编译通过。

二.原因

java程序在编译的时候,需要使用JDK开发工具包中的JAVAC.EXE命令,默认格式为UNICODE的编码格式.
因此在默认情况下,javac.exe会采用默认的编码格式,JDK会优先获取操作系统的file.encoding参数,然后JDK就把我们的JAVA源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放到内存中。然后,javac把转换后的UNICODE格式的文件进行编译成class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,之后,JDK将此以UNICODE编码编译后的.class文件保存到操作系统中形成我们见到的.class文件.
VS Code的默认编码为utf-8.

java源程序时出现的错误: 编码 GBK 的不可映射字符 (0x80)的主要原因是,在编写java源程序代码时代码中添加了中文注释,且java文件的编码格式不是ANSI编码格式,导致在编译java源程序时报错,无法成功编译;

java编译的时候会转换成统一的unicode编码处理,最后保存的时候再转换为utf编码。所以解决的方法就是更改java源程序的编码格式。

三.解决办法

1.将Java源文件保存成ANSI编码格式。
VS Code 的编码中没有 Unicode编码,可以使用其他编辑器,如notepad,将源文件的编码转成ANSI编码再编译。
2.使用使用命令javac -encoding UTF-8编译。
在这里插入图片描述
参考:CSDN博主「star__king」的文章
原文链接:https://blog.csdn.net/qq_41704415/article/details/106419663

  • 6
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值