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

错误现象:

由于JDK是国际版的,我们在用javac.exe编译时,编译程序首先会获得我们操作系统默认采用的编码格式(也即在编译java程序时,若我们不指定源程序文件的编码格式,JDK首先获得操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),然后JDK就把我们的java源程序从file.encoding编码格式转化为JAVA内部默认的UNICODE格式放入内存中。然后,javac.exe把转换后的UNICODE格式的文件进行编译成.class类文件,此时.class文件是UNICODE编码的,它暂放在内存中,紧接着,JDK将此以UNICODE编码的编译后的class文件保存到我们的操作系统中形成我们见到的.class文件。对我们来说,我们最终获得的.class文件是内容以UNICODE编码格式保存的类文件,它内部包含我们源程序中的中文字符串,只不过此时己经由file.encoding格式转化为UNICODE格式了。

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

解决方法:

应该使用-encoding参数指明编码方式:javac -encoding UTF-8 *.java , 这下没警告了

时间: 2024-10-25 11:53:51

【javac】错误:编码GBK的不可映射字符的相关文章

记一个奇怪的编码转换问题,及探讨“错误: 编码GBK的不可映射字符” 的原因

什么情况? 下面的一段简单代码,发现了奇怪的编码问题: String docPath = "姝f枃";// docPath = "正文"; // 注释1System.out.println("default = " + docPath); String docPath1 = new String(docPath.getBytes(), "GBK");System.out.println("GBK = " +

有关java编辑改变编码器时出现HelloWorld.java:3: 错误: 编码GBK的不可映射字符 * 瀹冨皢鎵撳嵃瀛楃涓? Hello World

有关java编辑改变编码器时出现HelloWorld.java:3: 错误: 编码GBK的不可映射字符      * 瀹冨皢鎵撳嵃瀛楃涓? Hello World 这个是编码格式的问题,因为java是国际版的所以要改一下 原文地址:https://www.cnblogs.com/whdaichengxu/p/12197960.html

javac编译出现的编码错误: 编码GBK的不可映射字符

在Windows平台下,当Java源代码中包含中文字符时,如果我们利用代码编辑器保存代码时是utf-8编码格式保存,那么我们在用javac编译时会出现“错误:编码GBK的不可映射字符”. 我们在用javac编译时,编译程序首先会获得我们windows操作系统默认采用的编码格式(GBK),这样在从硬盘读取java文件的时候就相当于按GBK格式解码进内存中,而原编码为utf-8,就会发生解码错误,导致无法编译.当我们不加设置就编译时,相当于使用了参数:javac -encoding GBK Stre

javac编译 编码GBK的不可映射字符

使用命令行javac命令编译java文件, 提示错误:编码GBK的不可映射字符. 在编译的时候,如果我们没有用-encoding参数指定我们的JAVA源程序的编码格式,则javac.exe会获得我们操作系统默认采用的编码格式. JDK根据操作系统的file.encoding参数(它保存的就是操作系统默认的编码格式,如WIN2k,它的值为GBK),把源程序从默认编码格式转化为JDK内部默认的UNICODE格式放入内存中.然后把转换后的unicode格式的文件进行编译成.class类文件,此时.cl

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

在使用Eclipse进行javadoc的导出时,提示“编码 GBK 的不可映射字符”,应该就是中文注释Eclipse不认,需要在调用javadoc.exe的时候传递编码集告诉它采用什么编码去生成javadoc文档. 打开eclipse,project –> Export –> javadoc 一项一项的选你要输出javadoc的项目,最后一步中VM设置行中加入以下代码 -encoding utf-8 -charset utf-8 经过以上操作,输出的html代码不会发生“编码 GBK 的不可映

javadoc生成出现错误“编码 GBK 的不可映射字符”

在使用Eclipse进行javadoc的导出时,提示“编码 GBK 的不可映射字符”,应该就是中文注释Eclipse不认,需要在调用javadoc.exe的时候传递编码集告诉它采用什么编码去生成javadoc文档. 打开eclipse,project –> Export –> javadoc 一项一项的选你要输出javadoc的项目,最后一步中VM设置行中加入以下代码 -encoding utf-8 -charset utf-8 经过以上操作,输出的html代码不会发生“编码 GBK 的不可映

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

最近在研究JNI,由于只有一个文件,涉及命令行编译,使用notepad++编辑器,然后使用javac编译: 之前的几个文件没有中文的内容,都没有产生错误,这次有中文就产生这样的错误! 解决方案 方案一.指定编码 javac -encoding utf-8 CommonClassLoader.java 方案二.修改文件编码 注意 当文件是utf-8编码时,不能有BOM,否则也会有错误,如下图:

Java中出现“错误: 编码GBK的不可映射字符”的解决方法

我的java文件中出现中文,是这样一个文件: import java.io.*; public class Test { public static void main(String[] args) { String separator = File.separator; String filename = "myfile.txt"; String directory = "mydir1" + separator + "mydir2"; File

“错误: 编码GBK的不可映射字符” 的解决方案

命令行下,用javac命令编译java程序时,如果文档的编码为"utf-8",并且含有中文字符时,会出现乱码现象,编译通过不了.如图: 解决方案:编译时指定编码方式,防止乱码.如下: 原文地址:https://www.cnblogs.com/phdeblog/p/9367647.html