java编译报错提示编码GBK的不可映射字符啥意思_java字符串编码转换

java编译报错提示编码GBK的不可映射字符啥意思_java字符串编码转换在我想要在println输出一些中文的时候,发现编码出现错误原因:java程序在编译的时候,需要使用JDK开发工具包中的JAVAC.EXE命令,而JDK开发工具包是国际版的,默认格式为UNICODE的编码格式。因此在默认情况下,javac.exe会采用默认的编码格式,什么是默认的编码格式呢?也就是我们在编译JAVA程序时,在未指定源程序文件的编码格式的情况下,JDK会优先获取操作系统的file.encoding参数,然后JDK就把我们的JAVA源程序从file.encoding编码格式转化为JAVA

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在我想要在命令行使用println输出一些中文的时候,发现编码出现错误

在这里插入图片描述


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

为什么JDK开发工具包默认格式为UNICODE的编码格式呢?主要原因是因为UNICODE的编码格式是最统一的编码,可以用来表示所有语言的字符,而且是定长双字节(也有四字节的)编码,包括英文字母在内。 相对于我们国内来说,现在较多使用的编码格式多位UTF-8以及GB2312等编码格式。这里编译java源程序时出现的错误: 编码 GBK 的不可映射字符 (0x80)的主要原因是,在编写java源程序代码时代码中添加了中文注释,且java文件的编码格式不是ANSI编码格式,导致在编译java源程序时报错,无法成功编译;

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

解决办法

1.在编写java源程序代码(我用的是Notepad++)保存时,选择合适的编码语言进行保存。以notepad++编辑软件为例,在保存时把java文件转换成ANSI编码格式即可。操作方法为:选择菜单栏中的编码,选择“ANSI格式编码“,选择后保存即可在这里插入图片描述

2.使用使用命令javac -encoding UTF-8编译,以HelloWorld.java的源程序为例,编译时执行的命令为:javac -encoding UTF-8 HelloWorld.java。执行后,java源程序就被成功编译为.class文件,并且能够通过java.exe命令执行!在这里插入图片描述

问题得到了解决

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/194362.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 使用百度echarts制作可视化大屏——最终效果和动态数据刷新「建议收藏」

    使用百度echarts制作可视化大屏——最终效果和动态数据刷新「建议收藏」最终效果如下图:接下来就是数据动态刷新了,这个没什么好说的,就是一个$.post的事,传递一个json给自定义的resresh函数就行了。$.post(url,null,function(d){resresh(d);},’json’);总结下来,有以下一些心得:1、大屏里面,设计是第一位的;2、要言之有物;3、能…

    2022年10月12日
    5
  • uos访问windows共享打印机_Linux打印机安装命令

    uos访问windows共享打印机_Linux打印机安装命令Unraid安装CUPS实现共享打印和无线打印2020-11-2916:08:3451点赞486收藏51评论创作立场声明:个人瞎折腾,文中部分内容来自网络,本人并非专业人士,只是将个人的折腾经验分享给大家,如有错误请大家指正今年上半年买了一台高配蜗牛,蜗牛D的机箱、G5400的cpu、B365的板子,就开始了一系列的折腾,更换了8700tescpu,带pcie插槽的蜗牛C机箱,4口pci…

    2022年10月9日
    4
  • Gitblit服务器搭建

    Gitblit服务器搭建Gitblit服务器搭建

    2022年4月23日
    43
  • IDEA 创建applicationContext.xml

    IDEA 创建applicationContext.xml右键new-》XMLConfigurationFile-》springconfig若没有这个选项,就是spring相关的包没有导入,pom没有依赖spring相关包https://mvnrepository.com/查找<dependency><groupId>org.springframework</groupId&g…

    2022年7月13日
    113
  • 典型的电容有_电容的容量

    典型的电容有_电容的容量【硬见小百科】二十种电容分类详解!一、瓷介电容器(CC)【硬见小百科】二十种电容分类详解!1.结构用陶瓷材料作介质,在陶瓷表面涂覆一层金属(银)薄膜,再经高温烧结后作为电极而成。瓷介电容器又分1类电介质(NPO、CCG);2类电介质(X7R、2X1)和3类电介质(Y5V、2F4)瓷介电容器。2.特点1类瓷介电容器具有温度系数小、稳定性高、损耗低、耐压高等优点。最大容量不超过1…

    2022年8月22日
    5
  • STEAM账号被盗(绑定QQ邮箱)的找回方法以及背后操作原理解析「建议收藏」

    STEAM账号被盗(绑定QQ邮箱)的找回方法以及背后操作原理解析「建议收藏」看到这篇博客的,想必十有八九都是刚刚发现STEAM账号被盗的!针对STEAM密码被修改、绑定邮箱被修改、申诉“此客服案件已关闭”、STEAM申诉超过2天没有结果、当天打开杀毒软件警告过的高危软件后被盗号的我觉得会有用!(我是Murphyer今天是19年4月20日,从上次被盗号到现在已经半年多了,没有出现再被盗号的情况。我在这儿提供一个QQ群:866986904(目前已有270人…

    2022年7月25日
    128

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号