您的位置:首页 > 其它

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

2013-01-09 14:48 746 查看
很多网站提供多个附件打包下载的功能,而下载解压后中文文件名有乱码的问题。

问题的原因如下:

windows中文系统默认采用GBK编码,中文文件名在本地保存时是gbk的,当上传到网站上时,

如果网站编码是utf8的,那么本地浏览器会将文件名转码处理,再上传。

而在在打包下载时,网站会把utf8编码的文件名文件统一打包,这样用户用 RAR再打开后就乱码了。

解决方法:

打包下载时,网站获取用户请求的HTTP头中的acceept-charset accept-language ,

如果字符集中含有 GBK ,并且语言是 zh cn的这种情况,可以在后台打包时,将utf8的

文件名转码为gbk,再压缩打包。这样下载就是ok的。

最初的解决方法,考虑将gbk的中文用 uri方式编码,然后下载时再将uri编码解码,

但发现这个方法不可行,因为js是不能直接访问本地文件的,而浏览器选择了上传文件后,

已经是utf8编码了,再uri编码是徒劳的。 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: