A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹思敏 中级黑马   /  2013-6-7 23:00  /  1022 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 孙百鑫 于 2013-6-22 00:46 编辑

读文件要使用和文件编码一致的编码,那么javac编译文件也需要读取文件,它使用什么编码呢?

3 个回复

倒序浏览
额  高深的问题 哈哈
回复 使用道具 举报
我在这里时也遇到过这个问题呢?不过当学了编码模式后,自己试了几十遍:

手动建立一个java文件Demo.java,并保存。
此时Demo.java文件的编码为ANSI,中文操作系统下就是GBK.然后使用javac命令来编译该源文件。"javac Demo.java”并没有问题。
然后再建一个Demo2.java文件,选择UTF-8保存。此时Demo.java文件编码就是UTF-8了。再使用”javac Demo2.java”来编译,此时控制台会出现警告信息,也出现了乱码。

总结如下:
Demo.java其实javac采用了操作系统默认的GBK编码解码读取字节,这个编码正好也是Demo.java文件的编码,二者一致,所以不会出现乱码情况。
Demo2.java是因为javac采用了GBK编码解码我们读取的字节。因为字节是UTF-8编码的,所以会出现乱码。如果不信的话你可以自己试试。

那么解决办法呢?
目前不知道~~~~~~{:soso_e112:}按格式来就好。

评分

参与人数 1技术分 +1 收起 理由
孙百鑫 + 1 用心回答就有分

查看全部评分

回复 使用道具 举报
楼主您好~帖子长时间未作出回答,我已经将您的帖子改成已解决。如果有问题的话可以私密我哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马