事情的起因是这样的,因为婚纱工作室发来的小样是 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/
问题解决!