在线模板解压文件名乱码的解决

出自WPS For Linux

跳转到: 导航, 搜索
在WPS中有海量的模板,其中有一些是用zip压缩的模板合集,我们下载后在Linux下解压,会出现文件名乱码的问题。实际上这是Linux上的老问题了,与WPS本身无关,但还是有解决方案的。需要做的就是给unzip打上一个补丁,使unzip可以用-O选项指定编码(这个-O选项在较老的unzip版本中曾经出现过,不知什么原因被开发者剔除了)。

目录

Ubuntu/Debian

Ubuntu官方源和Debian的testing源已经收录了打过patch的unzip,只须升级到最新的unzip即可。需要注意的是,默认unzip是没有使用-O选项的,在/etc/enviroment中添加两行:
export UNZIP="-O CP936"
export ZIPINFO="-O CP936"

这样,每次执行unzip时会以GBK编码去识别文件名,中文文件名就不会乱码了。

ArchLinux

直接用AUR中的unzip-iconv代替官方源的unzip,在/etc/profile.d/目录中新建unzip.sh文件,将以下内容保存进去:
#!/bin/sh
export UNZIP="-O gb18030"
export ZIPINFO="-O gb18030"

切记还要将unzip.sh的权限改为755。

Slackware

可以使用以下SlackBuilds来重新构建infozip包,使用upgrape --reinstall覆盖系统的infozip即可。
git git://gitcafe.com/zhtengw/SlackBuilds.git
cd zip
sh ./infozip.SlackBuild

其他发行版

其他发行版需要自己下载源代码来编译了,
wget http://gitcafe.com/zhtengw/SlackBuilds/raw/master/zip/unzip60-alt-iconv-utf8.patch # 下载补丁
wget ftp://ftp.info-zip.org/pub/infozip/src/unzip60.tgz # 下载unzip源码
tar xvf unzip60.tgz
cd unzip60
patch -Np1 -i ../unzip60-alt-iconv-utf8.patch # patch for iconv
make -f unix/Makefile  prefix=/usr unzips #编译
make -f unix/Makefile prefix=/home/aten/build/temp/usr INSTALL_PROGRAM="install" install # 安装

再仿照以上ArchLinux或Ubuntu的方法,添加环境变量UNZIP和ZIPINFO即可。

相关文件

unzip60-alt-iconv-utf8.patch

个人工具