关于javac -encoding

当我们编辑了一个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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值