解决Linux系统使用unzip解压后中文名乱码问题-一一网络 解决Linux系统使用unzip解压后中文名乱码问题 – 一一网络

解决Linux系统使用unzip解压后中文名乱码问题

写在前面:

之前的一些工作遇到的问题都是以笔记的形式记录,现在开了博客后,打算把之前觉得有用的笔记放到博客上,帮助别人的同时,自己没事还能温故知新一下,一举两得。

问题现象:

如文章标题所说,Linux系统使用unzip解压zip软件包后,中文名乱码

问题原因:

此问题是由于zip格式的缺陷,zip文件格式中没有字段标志出文件名的编码格式,Windows下生成的zip文件中的编码是GBK/GB2312等,由于zip文件中没有声明其编码,所以 linux上的unzip一般以默认编码UTF8解压,因此,导致这些zip文件在Linux下解压时出现中文文件名乱码。
注:目前发现5.52版本unzip有这问题,6.00以上版本会自动转换编码

解决办法一,利用pyton来处理

# vi uzip
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# uzip.py
import os
import sys
import zipfile
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 +x uzip
# ./uzip xxxx.zip

 

方法2,通过unzip行命令解压,指定字符集,但一些unzip是没有-O这个选项的

# unzip -O CP936 xxx.zip (用GBK, GB18030也可以)

方法3,在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件

# vim /etc/environment中加入2行
UNZIP=”-O CP936″
ZIPINFO=”-O CP936″
我是用方法一解决的,其他两种方法思路相同,测试后没有效果,但是网上有人说可以,估计跟系统或者软件版本有关,此处仅作为记录。

免责声明:务必仔细阅读

  • 本站为个人博客,博客所转载的一切破解、path、补丁、注册机和注册信息及软件等资源文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。

  • 本站为非盈利性站点,打赏作为用户喜欢本站捐赠打赏功能,本站不贩卖软件等资源,所有内容不作为商业行为。

  • 本博客的文章中涉及的任何解锁和解密分析脚本,仅用于测试和学习研究,禁止用于商业用途,不能保证其合法性,准确性,完整性和有效性,请根据情况自行判断.

  • 本博客的任何内容,未经许可禁止任何公众号、自媒体进行任何形式的转载、发布。

  • 博客对任何脚本资源教程问题概不负责,包括但不限于由任何脚本资源教程错误导致的任何损失或损害.

  • 间接使用相关资源或者参照文章的任何用户,包括但不限于建立VPS或在某些行为违反国家/地区法律或相关法规的情况下进行传播, 博客对于由此引起的任何隐私泄漏或其他后果概不负责.

  • 请勿将博客的任何内容用于商业或非法目的,否则后果自负.

  • 如果任何单位或个人认为该博客的任何内容可能涉嫌侵犯其权利,则应及时通知并提供身份证明,所有权证明至admin@proyy.com.我们将在收到认证文件后删除相关内容.

  • 任何以任何方式查看此博客的任何内容的人或直接或间接使用该博客的任何内容的使用者都应仔细阅读此声明。博客保留随时更改或补充此免责声明的权利。一旦使用并复制了博客的任何内容,则视为您已接受此免责声明.

您必须在下载后的24小时内从计算机或手机中完全删除以上内容.

您使用或者复制了本博客的任何内容,则视为已接受此声明,请仔细阅读


更多福利请关注一一网络微信公众号或者小程序

一一网络微信公众号
打个小广告,宝塔服务器面板,我用的也是,很方便,重点是免费的也能用,没钱太难了,穷鬼一个,一键全能部署及管理,送你3188元礼包,点我领取https://www.bt.cn/?invite_code=MV9kY3ZwbXo=


一一网络 » 解决Linux系统使用unzip解压后中文名乱码问题

发表评论

发表评论

一一网络-提供最优质的文章集合

立即查看 了解详情