编码问题

在公司做一个java读写压缩文件的时候,发现压缩文件名一直乱码。然后打印了一下相关的信息。

System.out.println("systemEncoding : "+System.getProperty("sun.jnu.encoding"));
System.out.println("fileEncoding : "+System.getProperty("file.encoding") );

分别将系统编码和文件编码打印了一下发现二者的编码均是GB18030 。但是很明显这二者编码读写文件的时候文件名是会乱码的。于是更改了eclipse的文件编码成UTF-8/GBK 均没成功。

回到家之后用自己的电脑写了相同的压缩文件流程,发现文件名不会乱码。打印上述的编码结果如下:

查询系统编码方法:打开cmd命令提示符,输入chcp

网上看的修改编码的方法(未测试)

1)在代码修改环境sun.jnu.encoding是不生效的
2)要想修改sun.jnu.encoding : 
     (1)tomcat修改 :tomcat的catalina.sh(linux环境windows是catalina.bat)中添加一个系统变量 export LANG=zh_CN.UTF-8
       (2)普通的java项目,启动项目是带上参数 -Dsun.jnu.encoding=utf-8   例如:java -Dfile.encoding=UTF-8 -Dsun.jnu.encoding=utf-8  -jar test.jar

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值