Ubuntu/压缩&解压
压缩和解压是文档存储、交换的重要辅助手段。
而Ubuntu所遇到的问题依然是和编码方式有关。
原因
编辑绝大部分Microsoft Windows中文操作系统使用GBK作为默认的编码方式。而Ubuntu则统一采用UTF-8作为默认编码。
使用GBK编码的Windows操作系统之间交换文件是没有问题的。而Ubuntu系统之间,或者与其他使用UTF-8的操作系统之间交换文件也是没有问题的。但如果采用GBK的Windows和采用UTF-8的Ubuntu之间交换文件,那么就极有可能使压缩文件出现乱码,甚至解压缩错误。
为什么Ubuntu使用UTF-8作为默认编码呢?
最主要的原因是为了国际化。下面的例子用来说明这个问题:
假设一位华语区的维基人,要发送一些图片给一位英语区的维基人。为了方便添加邮件附件,他将图片压缩到一个zip压缩文件里。他的操作系统是Windows中文版,编码是GBK。而另一位维基人的操作系统是Windows英文版,编码是ASCII。若这些文件的文件名是中文的,那么它们在另一位维基人的电脑上被解压之后,文件名就变成了乱码。这是因为他们使用不同的编码。 |
如果一台计算机被多人共用,且他们使用不同的语言。为了使每个人都能使用,必须在Windows上安装不同的语言包和字符编码。在使用不同语言的时候,字符编码也不同。然而,他们保存的文件不能在对方的语言环境下正确显示。GBK的字符在其他语言编码之下会混乱。 |
因此,Ubuntu和很多开源国际化操作系统都采用UTF-8作为默认的编码。
为什么采用UTF-8就会导致乱码呢?
这并不是UTF-8本身的问题,任何不同编码系统之间都可能存在兼容性问题。UTF-8所遇到的问题,更多地是由其它编码方式引起的。UTF-8系统和UTF-8系统之间一般是不存在这种兼容性问题的。兼容性问题一般只存在于UTF-8和非UTF-8系统之间。对于中文用户,这通常指Ubuntu的UTF-8与Windows的GBK或Big5。
解决方法
编辑解决方法不止一种,他们并不能解决所有问题。
更改压缩格式
编辑rar, zip, tar.gz, tar.bz2 压缩格式在Windows和Ubuntu之间交换会出现乱码问题。因此,如果文件名、目录名含有中文,则最好不使用此类压缩格式与Windows交换文件。
7z, jar 压缩格式不会出现乱码问题。由于jar格式不一定被支持,推荐使用7z格式在Ubuntu和Windows之间交换数据。
此种方法仅适合在压缩时就采取预防措施,以避免问题。如果您收到了Windows用户的压缩rar或zip文档,则需要用其它方法解决。