Mac解压zip文件乱码解决

Posted by ijays on June 26, 2018

事情的起因是这样的,因为婚纱工作室发来的小样是 zip 的压缩包,用 Mac 打开后出现乱码,比如:

8¥Á∞Ʊ¥ÀÆæß2

10¥Á∞Ʊ¥ÀÆæß2

试过使用 Mac 自带的压缩工具和 第三方的 StuffIt Expander 都是同样的结果,最后忍无可忍,Google 到了解决方案,这里做一下记录总结。

其实出现问题的原因,就是文字编码的问题,当不指定编码格式的时候,解压缩出来的出来的就是乱码。如果在解压缩的时候手动指定文字的编码格式,应该就可以解决问题了。

这里写了一段 Python 脚本。

#!/usr/bin/env python
#-*- coding: utf-8 -*-
# unzip-gbk.py

import os
import sys
import zipfile

reload(sys)
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding()

print "Processing File" + sys.argv[1]

file = zipfile.ZipFile(sys.argv[1], "r");
for name in file.namelist():
    utf8name = name.decode("gbk")
    print "Extracting " + utf8name
    pathname = os.path.dirname(utf8name)
    if not os.path.exists(pathname) and pathname != "":
        os.makedirs(pathname)
    data = file.read(name)
    if not os.path.exists(utf8name):
        fo = open(utf8name, "w")
        fo.write(data)
        fo.close
file.close

然后 chmod 赋予该脚本运行的权限,最后运行该脚本。

python gbk-unzip.py XXX.zip

结果如下:

utf-8
Processing FileXXX.zip
Extracting XXX/
Extracting XXX/10寸爱贝水晶2/

问题解决!