java 打包乱码_Java程序打包之后中文乱码的原因及解决方法

设置JDK的默认编码为UTF-8

首先,在网上找了一段程序来查看自己当前系统的默认编码:

importjava.io.ByteArrayOutputStream;importjava.io.OutputStreamWriter;importjava.nio.charset.Charset;classTest{publicstaticvoidmain(String[]args){System.out.println("Default Charset="+Charset.defaultCharset());System.out.println("file.encoding="+System.getProperty("file.encoding"));System.out.println("Default Charset="+Charset.defaultCharset());System.out.println("Default Charset in Use="+getDefaultCharSet());}privatestaticStringgetDefaultCharSet(){OutputStreamWriterwriter=newOutputStreamWriter(newByteArrayOutputStream());Stringenc=writer.getEncoding();returnenc;}}

结果显示为:

a4c26d1e5885305701be709a3d33442f.png

如图,由于我的系统是中文语言的,得到的是GBK编码,实际上可以在运行程序时给它指定编码,用-Dfile.encoding=UTF-8参

数即可,但在某些时候,运行Java程序不是由我们人为控制的,例如我在使用BalckBerry WebWorks

SDK时用bbwp时无法在它调用Java时给它指定encoding参数,于是杯具就产生了,出现了一大堆带问号的错误,显然是编码的问题,这种情况

下,就只能设全局变量来改变encoding了。

Java官方文档有提到可以在系统变量中设置JAVA_TOOL_OPTIONS来指定运行Java程序时附带的一些参数,即每次运行Java程序时都会将这些参数附加进去,参考原文:

那么,现在就可以在系统环境变量中增加一个变量,变量名为: JAVA_TOOL_OPTIONS,

变量值为:-Dfile.encoding=UTF-8,保存,重新打开命令提示符,现在,再运行一次刚刚的程序,得到结果:

a4c26d1e5885305701be709a3d33442f.png

现在显示为UTF-8编码了,注意红色方框部分,每次执行时都会先出现这些参数,在这里我还加了两个参数,改变了默认的语言和时区,因为我发现改了编码为UTF-8后,出现的Java提示如java

-help之类的都会变成乱码,所以把它改成英文的提示了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值