20110225

不完美

不完美

无论你Linux用得多么逍遥自在,总要与周围的Windows交流,文件或者消息。传
递文件的一个方法是使用ZIP压缩包。

这个时候麻烦就来了。

在windows下压缩的文件,在Linux解压以后,文件名成了乱码;在Linux下压缩
的文件,在Windows下也是乱码。

Windows和windows之间是没有问题的。如果你只用Windows的话,这个麻烦反倒是
不存在。

Linux尚是小众,没资格说 如果你只用Linux的话,这个麻烦也不存在。

这个麻烦的原因是,Windows的文件系统的编码是GBK,而Linux,比如Ubuntu,
使用了UTF8作为文件系统的编码。

编码无所谓好坏,就像世界上的语言无所谓好坏。一群中国人大读"法语是世界
上最伟大的语言",那是因为念课文。

只见过windows的人,可能连文件系统是啥都不知道,更不用说这东西居然也有编
码。

但是,少数人确实是存在的。

当多数人缺少对少数人的包容的时候…少数人就得点包容多数人的胸怀。这个说起
来话长,就此打住。

所以,我不用7Z压缩,虽然它那么先进。因为项目组的同学们习惯使用ZIP或者
RAR。

所以,我还是有机器里装着IE游览器,因为网银啥的。

理想主义是可以存在的,但是,不能用来要求别人。

显然不能要求合作者把WINDOWS文件系统改成UTF8;我也不想把LINUX文件系统改
成GBK,因为我在EMACS写文档什么的,要在UTF8下进行。

怎么办?

网上有人说,没招。

还有人说,有一个工具,叫convmv,可以把文件名改为某种编码。不幸的是,我
用它改的名字,压缩以后在windows下看来,只是与UTF8产生的乱码
不同,但仍是乱码。而且,这些文件名的有些乱码组合是非法文件名,不能被压
到压缩包里。

有人做了个python脚本,能把ZIP中的文件名改为UTF8,然后再解压。但是这并
不能解决发给WINDOWS用户的压缩包里仍是乱码。

ZHUMAO把文件系统改成了GBK,可是我需要UTF8。

我试了一大顿,没有找到解决之道。

也许,先设置locale,然后再压缩,然后再把locale改回来,说不定是个解决之
道。但是我觉得太麻烦了。说不定,emacs下的五笔还得调整。

所以,准备暂时拒绝接收压缩包里有中文文件名的;而发出的包就好办了,不起
中文文件名。

有的朋友可能想到了一个更聪明的办法,就是不使用Linux,或者干脆不允许
Linux存在。或者反过来让windows消失,这样矛盾就完全消失了。

这当然解决了问题。不过,还是不说了吧。

今天到这。

No comments: