输入javac -encoding utf-8 文件名.java。就可以解决了。
当Java源代码中包含中文字符时,我们在用javac编译时会出现“错误:编码GBK的不可映射字符”。
由于JDK是国际版的,我们在用javac编译时,编译程序首先会获得我们 *** 作系统默认采用的编码格式(GBK),然后JDK就把Java源文件从GBK编码格式转换为Java内部默认的Unicode格式放入内存中,然后javac把转换后的Unicode格式的文件编译成class类文件。
此时,class文件是Unicode编码的,它暂存在内存中,紧接着,JDK将此以Unicode格式编码的class文件保存到 *** 作系统中形成我们见到的class文件。当我们不加设置就编译时,相当于使用了参数:javac -encoding GBK Test.java,就会出现不兼容的情况。
拓展资料:
javac 是java语言编程编译器。全称java compiler。javac工具读由java语言编写的类和接口的定义,并将它们编译成字节代码的class文件。javac 可以隐式编译一些没有在命令行中提及的源文件。用 -verbose 选项可跟踪自动编译。当编译源文件时,编译器常常需要它还没有识别出的类型的有关信息。对于源文件中使用、扩展或实现的每个类或接口,编译器都需要其类型信息。这包括在源文件中没有明确提及、但通过继承提供信息的类和接口。
JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK
参考资料:百度百科-javac常见错误
这两种写法是一样的不论 是编译时的参数 , 还是 在 java 内部 使用 ,utf8 和 utf-8 是一样的
其实你自己试一下就知道 ,不支持的编码 会报错的
encoding就是文本文件的编码方式,如果不明白编码方式是什么意思,请参考:http://zhidao.baidu.com/question/102680692.html
推荐用软件Replace Pioneer,把文件从gbk(ansi)编码转换为utf8的详细步骤:
==========
单文件转换:
1. 打开Convert->Encoding Convert菜单
2.点击input encoding,设置成CN->gbk
3.点击output encoding,设置成utf-8
4.选择input file 和output file,点击Start即可。
==========
批量文件转换:
第一步:选文件
1.打开Tools->Batch Runner菜单
2.把待处理文件从windows拖拽到Batch Runner窗口中
第二步:变换编码
1.点击Change Encode按钮
2.点击input encoding,设置成CN->gbk
3.点击output encoding,设置成utf-8
4.点击start,完成
注:如果你想把输出保存到新文件里,可以修改set output filename,把它从${FILENAME}改成新的规则,比如${FILENAME}.new。还要注意备份,以防 *** 作失误。
==========
编码检测:
另外,如果不知道一个文件原来的编码是什么,还可以用Tools->Encoding Detection菜单来检测。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)