使用cmd命令窗口编译java源程序时出现乱码问题

当使用GBK编码的javac编译器尝试编译UTF-8(带ROM)编码的Java源文件时,会出现乱码。解决方法是在编译时指定编码参数,如`javac -encoding utf-8 HelloWorld.java`。然而,如果源文件包含ROM信息,即使指定编码,仍可能产生乱码。为避免此问题,建议使用支持保存无ROM编码的高集成度开发工具,确保源文件以正确编码保存。

在中文操作系统中,使用javac HelloWorld来编译java源程序【记事本存储的java源程序默认为UTF-8(带ROM)编码】,默认编码为GBK【在未指定编码参数(encoding)的情况下】,故而在使用GBK编码来编译UTF-8(带ROM)编码的文件时,就会出现乱码。

具体乱码为:UTF-8(带ROM)编码的文件的文件头占三个字节的头信息,按照GBK中文占两个字节,英文占一个字节的特性来解码。

解决方案:

对于非GBK编码及其子集编码(GB2312)的源文件,为其指定编码参数。

编译时写作:javac -encoding "utf-8" HelloWorld.java,此时乱码中不会再出现中文。

但仍然存在乱码问题,这是因为javac编译器只能识别不带ROM的UTF-8编码,而使用记事本保存的源程序自带ROM。

想要去掉ROM,应该使用高集成度的开发工具,保存不带ROM的编码源程序,就不会出现乱码问题。

下面这个图片是我出现的乱码问题:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值