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文檔,則需要用其它方法解決。

更改默認編碼

編輯