打包下载文件 中文文件名乱码问题的解决




很多网站提供多个附件打包下载的功能,而下载解压后中文文件名有乱码的问题。
问题的原因如下:
windows中文系统默认采用GBK编码,中文文件名在本地保存时是gbk的,当上传到网站上时,
如果网站编码是utf8的,那么本地浏览器会将文件名转码处理,再上传。
而在在打包下载时,网站会把utf8编码的文件名文件统一打包,这样用户用 RAR再打开后就乱码了。


解决方法:
打包下载时,网站获取用户请求的HTTP头中的acceept-charset accept-language ,
如果字符集中含有 GBK ,并且语言是 zh cn的这种情况,可以在后台打包时,将utf8的
文件名转码为gbk,再压缩打包。这样下载就是ok的。


最初的解决方法,考虑将gbk的中文用 uri方式编码,然后下载时再将uri编码解码,
但发现这个方法不可行,因为js是不能直接访问本地文件的,而浏览器选择了上传文件后,
已经是utf8编码了,再uri编码是徒劳的。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值