昨天网站的下载系统出了一个问题,下载最新的打包zip文件都是0B大小,而之前的打包则没有问题。由于该系统是由前辈所做,只好慢慢爬代码找问题。
在凌晨两点半的时候终于确定问题在Zip文件的压缩这一步骤上。但无论是更改代码格式还是减小压缩包大小都无法解决问题。
最后终于发现半年前系统残留的一个zip文件,文件名是乱码,回头一检查发现是utf8编码。
这时就想会不会是由于新的zip文件名包含了系统特殊字符从而无法创建。于是就用了iconv("utf8", "gb2312", zippath);对zip文件名进行转码。
果真如此,成功打包下载!但是新问题来了,压缩包有问题,解压出错了。继续查资料找问题。
原来是iconv转码时有bug,需要添加//IGNORE。
iconv("utf8", "gb2312//IGNORE", zippath);