java执行乱码问题,IDE 工具执行乱码等

首先,Javac 编译的class 文件中的汉字都是 Unicode 编码的。 Unicode 俗称万国码,可以映射到不同的 charset ,如 utf-8,gbk 等。所以乱码可能的地方是,javac 编译的时候。

在执行javac 的时候,要确定项目文件用了什么编码,有的项目多人开发,会存在部分文件gbk 部分文件utf-8 的情况,需要将所有文件的编码统一。确认编码统一后,需要在ide 设置编译参数。通过 javac -help 可以看到 -encoding <encoding> 指定源文件使用的字符编码 。

指定javac 编译文件时的编码如 javac -encoding GBK 在eclipse 和 idea 等开发工具中都能手动指定。

正确编译的class 文件,不管在什么平台都能正确运行。但是在Windows 和 Linux/mac 下查看可能会有一个乱码,主要是大部分Windows的console 是gbk 编码的 ,可以设置console 的编码为utf-8 ,也可以在Linux/mac下设置console为gbk ,不过这种方法并不推荐。

在执行java 命令的时候,可以手动设置程序以什么编码输出信息到控制台。在命令行添加命令行参数,如 -Dfile.encoding=UTF-8
同样,在开发工具中都能手动设置命令行参数。(程序启动参数,临时环境变量都是可以设置的)

最主要的一点就是,class 文件中的字符是 Unicode 的形式存储的,javac 是写,Java 是读,只要设置的 字符集 正确,那么不管在什么平台,编译什么编码集的项目,都能在其他平台正确输出。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 字符是用户可以读写的最小单位。计算机所能支持的字符组成的集合,就叫做字符集。字符集通常以二维表的形式存在。二维表的...
    刘惜有阅读 12,545评论 2 14
  • 字符集和编码简介 在编程中常常可以见到各种字符集和编码,包括ASCII,MBCS,Unicode等字符集。确切的说...
    兰山小亭阅读 12,882评论 0 13
  • 亲爱的叮当宝贝, 你知道吗?妈妈经常对你说,妈妈最爱的就是你!现在的你一定听得懂妈妈的话了。昨天晚上,我在...
    阳花木易为春阅读 1,098评论 0 0