解压非utf8编码,如cp949、sjis、gbk、euc kr、euc jp和gb2312

unzipmbcs的Python项目详细描述


提取mbcs(多字节字符集)编码文件的zip文件 名称,如在MS Windows中创建的ZIP文件,尤其是东亚 环境。

按语言分类的主要非utf8编码:*韩语:cp949,euc-kr* 日语:sjis(shift_jis),cp932,euc-jp*中文:gbk,gb8030, GB2312、CP936、香港特别行政区、第五大城市、CP950

安装

pip install unzipmbcs

cli用法

usage: unzipmbcs [-h] [-e ENCODING] cmd zipfile [target [target ...]]

unzip for non-UTF8 filenames in zip archive

positional arguments:
  cmd                   commands: l(list), x(extract)
  zipfile               .zip file to unzip
  target                file prefix to extract

optional arguments:
  -h, --help            show this help message and exit
  -e ENCODING, --encoding ENCODING
                        character encoding of filename in the .zip

API

listzip(文件名,encoding='utf-8')

用返回zip存档文件filename中的文件信息 字符encoding

extractzip(文件名,encoding='utf-8',filters=none)

在当前目录的zip存档文件filename中提取文件。假设 zip归档文件中的文件名编码为encoding。只有 前缀为filterslist的值的文件将被提取,如果 filters已提供。

fixzipfilename(文件名,enc)

filename修复为最初编码为 enc。适用于Python2和3。

动机

.zip格式pkzip压缩已经被广泛使用。一些有价值的 数据存档为.zip文件。但是,非ascii,非西方 在环境中,它会因文件名而产生问题。

由于ZIP格式创建得太旧(1993),因此没有标准 压缩存档项文件名的字符编码。大部分 zip文件条目编码为传统字符编码,本地 字符集。

在现代基于unicode的环境或全局数据处理中 像Linux这样的环境,这使得不方便性、可移植性降低, 文件名损坏,无法提取文件,等等。

这个模块可以减轻不公正。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?