不完美

不完美无论你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消失,这样矛盾就完全消失了。这当然解决了问题。不过,还是不说了吧。今天到这。

Leave a Reply