Linux下解决解压乱码的问题

前言

康康目前的操作系统是Linux系统,没有再使用Windows,日常使用还是可以满足需求,但依然会遇到一些这样那样的问题。

今天正好有同事发了一些分纤箱的建设图纸给康康,方便以后寻找分纤箱位置,不过都是用ZIP或RAR在Windows下压缩的,导致康康在使用系统自带解压工具,或是unzip等工具解压时出现了问题,解压出来的所有内容都是乱码。

这里就说下这个问题要如何解决吧!

unzip

首先,是最基本的解决方式,就是使用unzip命令来解压,不过在解压的时候要增加一个参数-O,表示指定一种编码。

完整命令如下:

unzip -O CP936 xxxx.zip

这样解压出来的文件就是正常的,不过,有部分unzip版本是并不支持-O参数的,比如康康使用的Manjaro,也就是ArchLinux的桌面版本,那要如何增加呢?不同的系统有不同的方式,康康这里直接安装一个unzip-iconv即可。

sudo pacman -S unzip-iconv

Python方式

这是在网上看到的一种方式,不过康康测试没有成功,也没细究,有需要的朋友可以研究下。

#!/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 unzip.py
./unzip.py xxx.zip

unarchiver

康康使用的是这种方式,就是直接安装一个unarchiver软件,这款解压软件会自动解决压缩文件编码的问题,使用很方便。

sudo pacman -S unarchiver
unar xxx.zip
最后修改:2019 年 04 月 27 日 07 : 50 PM
如果觉得我的文章对你有用,请随意赞赏

发表评论