Chinaunix首页 | 论坛 | 博客
  • 博客访问: 38008
  • 博文数量: 3
  • 博客积分: 84
  • 博客等级: 民兵
  • 技术积分: 91
  • 用 户 组: 普通用户
  • 注册时间: 2012-06-11 21:27
文章分类
文章存档

2016年(1)

2014年(1)

2013年(1)

我的朋友

分类: LINUX

2016-09-28 21:08:45

最近在适配Linux某发行版操作系统,发现对zip4j压缩包主要存在两个问题:
(1)在发行版的界面里利用file-roller工具打开解压存在乱码问题,该问题解决比较顺利,发现发行版里缺少对zip4j压缩包的支持,安装p7zip-9.04-1.ND6.1.rpm,解决问题。
(2)在命令行方式下运行zipinfo工具显示存在乱码行为,且在centos7里也存在同样的问题:

gorgira@ubuntu-1404:~/zip/unzip-6.0$ unzip  -l  ~/s.zip

Archive:  /home/gorgira/s.zip

  Length      Date    Time    Name

---------  ---------- -----   ----

    14336  09-06-2016 10:35   2F15E3F90FE74DF2BF23E2068020DF97/????????????????????????01.xls

        0  09-06-2016 10:35   2F15E3F90FE74DF2BF23E2068020DF97/

---------                     -------

    14336                     2 files

ubuntu 14.04里面执行了

gorgira@ubuntu-1404:~/zip/unzip-6.0$ unzip  -l  ~/s.zip

Archive:  /home/gorgira/s.zip

  Length      Date    Time    Name

---------  ---------- -----   ----

    14336  2016-09-06 10:35   2F15E3F90FE74DF2BF23E2068020DF97/记录01.xls

        0  2016-09-06 10:35   2F15E3F90FE74DF2BF23E2068020DF97/

---------                     -------

    14336                     2 files

  问题(2)最为头痛,查了3天,在网上查些资料,发现大家的错误各不同解决方法都试了,木有用,困惑,只好下载了源码利用gdb工具跟踪分析,发现unzip工具编译生成选项里存在问题,缺少了对NO_WORKING_ISPRINT宏定义选项的支持,导致了unzip工具对压缩包里中文显示存在问题,故重新编译rpm已经能够完美解决该问题,后来在debian系统unzip的changelog里也确实找到如下更新日志,证实我的想法:

  changelog会发现如下信息:

unzip (6.0-9) unstable; urgency=low

 

  * Added NO_WORKING_ISPRINT to DEFINES so that UTF8 filenames are

    displayed correctly. Reported by Slavek Banko. Closes: #682682.

  * Use the right strip command when cross-building. Closes: #695141.

解决办法:重新编译包,附上NO_WORKING_ISPRINT宏定义支持,重新安装rpm -ivh unzip-6.0-1.SW.rpm --froce

阅读(1293) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~