解压使用 CJK 字符密码加密的非 UTF-8 编码 ZIP 归档文件
date
Aug 20, 2023
slug
unzip-non-utf8-encoding-cjk-password-encrypted-zip
status
Published
tags
Windows
ZIP
片段
summary
由于历史问题, 早期 zip 并不支持 cp936 以外的编码. 即使后来添加了对 UTF-8 的支持, 大部分软件也都不遵守规范, 不仅如此甚至还随意使用 cp936 和 UTF-8 之外的编码应用在 zip 归档上. 即使部分解压缩软件支持在浏览和解压时设置名称编码, 但都不支持设置归档文件的密码的编码, 导致使用不规范的编码密码加密的 zip 归档文件无法在其他编码环境下正确验证密码.
type
Post
由于历史问题, 早期 zip 并不支持 cp936 以外的编码. 即使后来添加了对 UTF-8 的支持, 大部分软件也都不遵守规范, 不仅如此甚至还随意使用 cp936 和 UTF-8 之外的编码应用在 zip 归档上. 即使部分解压缩软件支持在浏览和解压时设置名称编码, 但都不支持设置归档文件的密码的编码, 导致使用不规范的编码密码加密的 zip 归档文件无法在其他编码环境下正确验证密码.
UnZip for non-UTF8 encoding
环境要求: Python
- 使用 pip 安装模块:
pip install unzipmbcs
- 使用模块指定编码解压归档文件:
- 韩文(Korean):
cp949
,euc-kr
- 日文(Japanese):
sjis
(shift_jis
),cp932
,euc-jp
- 中文(Chinese):
gbk
,gb18030
,gb2312
,cp936
,hkscs
,big5
,cp950
unzipmbcs.exe x ./path-to.zip ` #归档文件路径 -p 密码 ` -e gbk # 指定编码
可用的编码: