liunx下载乱码问题

修改前:

 

 

压缩之前进行的编码设置:

 

结果:

下载解压后的结果乱码,是因为在测试时,判断始终是进入windows的编码,没有获取正确的编码环境

 

 

修改后:

一、获取输出流:

 

 

二、设置压缩包文件的文件名字符编码,解决从linux上打包文件后下载文件编码乱码问题,主要用以下编码设置:new String(zipName.getBytes("gb2312"), "iso-8859-1")

 

 

三、选择文件压缩格式

 

linux下压缩格式:

Zip:不支持自动转码,需要手动设置转码

 

四、在不确定服务器的环境之前,判断服务器的环境:

 

 

五、设置编码

根据不同的操作系统进行设置字符编码:

Linux的字符编码:utf-8

Windows的字符编码:gbk

Linux操作系统下载文件到windows系统,需要保持编码的一致性

 

 

五、压缩

此次上线服务器系统:aix(其底层就是Linux),需要对其压缩包下的每一个文件进行编码设置,在压缩文件文件个数不为空且操作系统是aix的时候,对每个文件的文件名进行编码设置(zip是压缩包下的每个文件,此处省略了for遍历),linux下文件乱码的编码设置:zipEntry.setUnixMode(644)

 

其中zos.putNestEntry(zipEntry)是在文件写入之前的准备,但是不是真正的写入文件,如果此处不写后面的文件下载为空。

 

六、zos编码设置(因为服务器系统为aix,其字符编码是utf-8,为匹配客户端操作系统,设置字符编码为:gbk)

 

结果:

 

 

解决思路:

1、首先判断服务器的环境,确定服务器的操作系统后,确定服务器的字符编码

2、选择合适的压缩格式(rarzip等)

3、确定了字符编码后,需要确定用户环境的系统编码和生产环境的字符编码是否相同,根据选择的压缩格式进行对应字符编码的设置

A、本系统生产环境时aix(其底层编码utf-8),windows字符编码时gbk

B、设置在生产环境下对应的编码

C、对要压缩的文件进行遍历,对每个文件进行编码操作无论服务器是linux操作系统还是windows操作系统,都进行了相适应的编码设置,以至于,在windows操作系统下压缩下载,也不会出现乱码问题(在生产时分别在linuxwindows操作系统性测试过,均不乱码)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值