Java -Dfile.encoding=UTF-8 出现乱码问题原因分析

本文详细分析了Java程序在不同环境下出现乱码问题的原因,尤其是-Dfile.encoding=UTF-8参数的影响。通过对比Mac系统中使用eclipse、Terminal、ant、Jar Launcher.app等多种方式启动Java程序时的差异,揭示了file.encoding属性对程序输出的影响。文中指出,Java虚拟机启动时默认编码取决于操作系统的区域和字符集,且一旦启动无法动态改变。解决方案包括通过命令行参数或脚本设置-Dfile.encoding=UTF-8,确保正确编码。此外,还介绍了在Mac上打开jar文件的方法。
摘要由CSDN通过智能技术生成

这两天写了一个 Java 程序来玩,结果又遭遇了以前遇到过很多次的乱码问题,具体描述一下:
在 Mac 系统里面,常用的 Java 程序启动方式有如下几种:

1.通过 eclipse 执行 class 入口文件启动;
2.在 Terminal 里面用 java Test.class 或 jave -jar Test.jar 启动
3.通过 ant 执行 class 入口文件启动;
4.直接用 ant 执行 jar 文件;
5.用 Mac OS CoreServices 中的 Jar Launcher.app 执行 jar 文件。
6.用 Mac OS 自带的 Jar Bundler.app 将 jar 文件包装成 app,然后执行

执行途径还是相当地丰富,但以不同的方式来执行,从控制台中得到的程序输出也不一致
比如说,刚刚在 eclipse 中还能正常打印出来的汉字,在打成 jar 包以后,
双击该 jar 文件以 Jar Launcher.app 的方式来启动,打印出来的文字就成了乱码了。
毕竟写出来的 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值