龙空技术网

Linux桌面系统解压Windows用户发来的zip压缩包中文乱码

龙玉大大 109

前言:

现在大家对“linux查看zip压缩包里面的内容”大约比较注重,大家都需要学习一些“linux查看zip压缩包里面的内容”的相关资讯。那么小编在网上汇集了一些有关“linux查看zip压缩包里面的内容””的相关资讯,希望我们能喜欢,咱们快快来了解一下吧!

现象

Linux桌面用户大多数都遇到这个问题,对Windows桌面用户发来的zip压缩包,双击打开或者解压,发现中文文件名和路径都是乱码。

通过命令行unzip解压也会得到一样的结果:

12月 unzip xxx2022年12月居家办公情况表集合.zipArchive: xxx2022年12月居家办公情况表集合.zipinflating: ░╜╘╦2022─ъ12╘┬╛╙╝╥░ь╣л╟щ┐Ў▒э╝п║╧/░╜╘╦2022-12-1.docinflating: ░╜╘╦2022─ъ12╘┬╛╙╝╥░ь╣л╟щ┐Ў▒э╝п║╧/░╜╘╦2022-12-15.docinflating: ░╜╘╦2022─ъ12╘┬╛╙╝╥░ь╣л╟щ┐Ў▒э╝п║╧/░╜╘╦2022-12-16.docinflating: ░╜╘╦2022─ъ12╘┬╛╙╝╥░ь╣л╟щ┐Ў▒э╝п║╧/░╜╘╦2022-12-2.docinflating: ░╜╘╦2022─ъ12╘┬╛╙╝╥░ь╣л╟щ┐Ў▒э╝п║╧/░╜╘╦2022-12-5.doc
分析

实际上这个是zip这种压缩方式,并没有指定压缩的编码格式。而Windows下生成的zip文件中的编码是GBK/GB2312等,Linux默认编码格式是utf8.

➜ 12月 echo $LANGzh_CN.UTF-8

这个时候可以用`lsar`查看一下压缩包内容:

➜ 12月 lsar xxx2022年12月居家办公情况表集合.zipxxx2022年12月居家办公情况表集合.zip: Zipxxx2022年12月居家办公情况表集合/xxx2022-12-1.docxxx2022年12月居家办公情况表集合/xxx2022-12-15.docxxx2022年12月居家办公情况表集合/xxx2022-12-16.docxxx2022年12月居家办公情况表集合/xxx2022-12-2.docxxx2022年12月居家办公情况表集合/xxx2022-12-5.docxxx2022年12月居家办公情况表集合/

还有更详细的参数:

12月 lsar -L xxx2022年12月居家办公情况表集合.zipxxx2022年12月居家办公情况表集合.zip: Zipxxx2022年12月居家办公情况表集合/xxx2022-12-1.doc:Name: xxx2022年12月居家办公情况表集合/xxx2022-12-1.docSize: 31.2 KB (31,232 bytes)Compressed size: 16.9 KB (16,890 bytes)Compression type: DeflateLast modified: 2022-12-16 18:09:52 +0800DOS file attributes: A----- (0x20)Index in file: 0Start of data: 80Length of data: 16890ZipCRC32: 0xba90c296ZipCompressionMethod: 8ZipExtractVersion: 20ZipFileAttributes: 32ZipFlags: 0ZipLocalDate: 1435537722ZipOS: 0ZipOSName: MS-DOS......................................................................

从最后一句` ZipOSName: MS-DOS`看得出来,这个zip压缩文件来自Windows系统。

而Linux系统本身压缩的zip文件,最后一个属性是`ZipOSName: Unix`

解决

在Linux系统下解压Windows用户打包的zip文件,有两个方式:

一、unzip

unzip解压并指定编码类型` -O`,可用的参数值`gbk gb2312 gb18030 cp930`等

➜ 12月 unzip -O gbk xxx2022年12月居家办公情况表集合.zipArchive: xxx2022年12月居家办公情况表集合.zipinflating: xxx2022年12月居家办公情况表集合/xxx2022-12-1.docinflating: xxx2022年12月居家办公情况表集合/xxx2022-12-15.docinflating: xxx2022年12月居家办公情况表集合/xxx2022-12-16.docinflating: xxx2022年12月居家办公情况表集合/xxx2022-12-2.docinflating: xxx2022年12月居家办公情况表集合/xxx2022-12-5.doc
二、unar
➜ 12月 unar xxx2022年12月居家办公情况表集合.zipxxx2022年12月居家办公情况表集合.zip: Zipxxx2022年12月居家办公情况表集合/xxx2022-12-1.doc (31232 B)... OK.xxx2022年12月居家办公情况表集合/xxx2022-12-15.doc (31232 B)... OK.xxx2022年12月居家办公情况表集合/xxx2022-12-16.doc (31232 B)... OK.xxx2022年12月居家办公情况表集合/xxx2022-12-2.doc (31232 B)... OK.xxx2022年12月居家办公情况表集合/xxx2022-12-5.doc (31232 B)... OK.xxx2022年12月居家办公情况表集合/ (dir)... OK.Successfully extracted to "./xxx2022年12月居家办公情况表集合".

标签: #linux查看zip压缩包里面的内容