1. 程式人生 > >ubuntu 各種中文亂碼問題

ubuntu 各種中文亂碼問題

1.顯示亂碼

狀況:所用的Linux系統不支援中文,遇見中文就zz了。ORZ…

目標:使系統/伺服器支援中文,能夠正常顯示。

首先,安裝中文支援包language-pack-zh-hans:

$ sudo apt-get install language-pack-zh-hans

然後,修改/etc/environment(在檔案的末尾追加):

LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh:en_US:en"

再修改/var/lib/locales/supported.d/local(沒有這個檔案就新建,同樣在末尾追加):

en_US.UTF-8 UTF-8 zh_CN.UTF-8 UTF-8 zh_CN.GBK GBK zh_CN GB2312

最後,執行命令:

$ sudo locale-gen 對於中文亂碼是空格的情況,安裝中文字型解決。

$ sudo apt-get install fonts-droid-fallback ttf-wqy-zenhei ttf-wqy-microhei fonts-arphic-ukai fonts-arphic-uming 以上,問題解決,中文顯示正常。:)  

2. windows 壓縮成zip後解壓成亂碼的問題

在windows上壓縮的檔案,是以系統預設編碼中文來壓縮檔案。由於zip檔案中沒有宣告其編碼,所以linux上的unzip一般以預設編碼解壓,中文檔名會出現亂碼。 雖然2005年就有人把這報告為bug, 但是info-zip的官方網站沒有把自動識別編碼列入計劃,可能他們不認為這是個問題。Sun對java中存在N年的zip編碼問題,採用了同樣的處理方式。 有2種方式解決問題: 1. 通過unzip行命令解壓,指定字符集 unzip -O CP936 xxx.zip (用GBK, GB18030也可以) 有趣的是unzip的manual中並無這個選項的說明, unzip --help對這個引數有一行簡單的說明。 2. 在環境變數中,指定unzip引數,總是以指定的字符集顯示和解壓檔案 /etc/environment中加入2行 UNZIP="-O CP936" ZIPINFO="-O CP936" 這樣Gnome桌面的歸檔檔案管理器(file-roller)可以正常使用unzip解壓中文,但是file-roller本身並不能設定編碼傳遞給unzip。

正常按第一種方式執行確保能解壓顯示正常