关于javac -encoding

来源:互联网 发布:乔迁之喜网络用语 编辑:程序博客网 时间:2024/06/03 12:40

当我们编辑了一个Java源文件保存时,是以操作系统默认的字符编码保存的(Windows xp默认字符集是GBK)。当调用javac命令时,会把源文件进行一次编码转换,如果没有指定字符集,就从操作系统默认的字符集转换成Java内部默认的unicode字符集,然后再将源文件编译成class文件,并且以unicode的编码形式保存到硬盘上。

在windows xp上使用记事本编辑源文件,

public class Test{public static void main(String[] args){System.out.println("你好!");}}
然后保存,保存的编码是GBK,即xp默认的字符编码。

编译的时候指定字符集为utf-8

C:\Documents and Settings\Administrator\桌面>javac -encoding utf-8 Test.java
输出以下结果
Test.java:3: 警告:编码 utf-8 的不可映射字符                System.out.println("????");                                    ^Test.java:3: 警告:编码 utf-8 的不可映射字符                System.out.println("????");                                     ^Test.java:3: 警告:编码 utf-8 的不可映射字符                System.out.println("????");                                       ^3 警告C:\Documents and Settings\Administrator\桌面>
编译虽然通过,但是报出了警告,这是因为源文件的编码和转换的编码不一致。

运行

C:\Documents and Settings\Administrator\桌面>java Test????C:\Documents and Settings\Administrator\桌面>
输出的是乱码。


0 0
原创粉丝点击