其实这个问题自从给家父换用 Fedora 后便遇到了,似乎总是有那么一两个人喜欢使用 zip 格式压缩下无论是多么小的文件。两三个 GNOME 版本更新却仍然如此,实在奇怪。于是这次坐下来查了查,才发觉这是一个大坑。
接下来的内容可以说是在下根据网上查找一些资料的验证/解决方案。没什么技术含量,随便哪个思维正常的 SA 都会做。记录下来,只是因为搜索引擎给出中文结果都已经不生效了!
**** 问题重现
很简单,在一台 Win 系统的设备上创建一个以中文命名的空白文件,然后用 7-zip 或者其他任意压缩工具压缩城 zip 格式。
将生成的文件复制到 Linux 系统下,尝试打开。
至少在 Fedora 23 上,无论使用 GNOME 桌面的 File-Roller 或者终端的 unzip 结果都是乱码的。
**** 错误尝试
放狐搜索出来的结果前几个:
为 unzip 使用 -O 选项指定编码
这个当年的隐藏参数在 6.0 版本中已经完全没有了
解压后使用 convmv 转换编码
不少文章提出使用这个方式 convmv -f gbk -t utf8 -r MY_DIR
实际上 convmv 会汇报文件名已经是 UTF-8 的了,不会做任何操作。
这样的结果不奇怪,毕竟 Win 也早经过了 XP 时代,中文 Linux 也默认 UTF-8 很久了。
使用 p7zip 解压 zip 文件
无论是使用 7za 还是 7z,乱码依旧
放鸭搜索出来的结果倒是很有趣:
GNOME Bugzilla
根据记录,这个 Bug 最早汇报于 2005 年的 file