如何在Ubuntu下新增中文字符集支援(解決中文亂碼問題)

alan00000發表於2012-11-26
今天開始把工作環境全部遷移到Linux,一天下來,算平靜。很慶幸當初在win下面用了Mozilla Thunderbird郵件客戶端,而不是OutLook,這簡直太方便了,可以直接把上百兆的郵件存放目錄複製到linux下直接用,與之形成鮮明對比的是微軟的新版live Messager,今天發現微軟的這個東西甚至不支援安裝在他們自己的WinXP 64/Wind2003/2008上面?我沒有什麼可說的呢。

Ubuntu 預設採用UTF8編碼,可以方便global。但對中文支援,還不細緻,即便預設採用中文安裝,也並不會自動新增GB*等支援,致使在Ubuntu下訪問部分Win文字檔案時,出現亂碼。

I. 配置系統環境
執行 sudo vi /var/lib/locales/supported.d/zh
加入以下配置引數

zh_CN.GB18030 GB18030 (最新漢字編碼字符集,向下相容GBK,GB2312)
zh_CN.GBK GBK (漢字擴充套件編碼,向下相容GB2312, 幷包含BIG5全部漢字)

zh_CN.GB2312 GB2312 (簡化漢字編碼字符集, 最近有客戶要我們改進GB2312,太看得起我們了,我只能說:"NO!")
zh_CN.GB18031 GB18031 (數字鍵盤漢字編碼輸入,面向手持裝置,我的Nokia3120從來就是發簡訊,接聽電話,無法和PC通訊,就不用這個了。 maybe用Google Android SDK的大俠們需要這個)
zh_HK.BIG5 BIG5 (繁體)
zh_TW.BIG5 BIG5 (繁體)

然後執行 sudo locale-gen
提示以下資訊,成功了
zh_CN.GB18030... done
zh_CN.GBK... done
......

II. 系統環境支援GB*內碼了,但用vi, gedit等工具訪問檔案還會繼續亂碼,需要針對不同的工具分別配置,使之自己檢測支援範圍內的編碼
e.g. vi
執行 sudo vi /etc/vim/vimrc
加入以下配置引數
let &termencoding=&encoding
set fileencodings=utf-8,gb18030,gbk,gb2312,big5

e.g. gedit
執行 sudo gconf-editor
選擇 apps/gedit-2/preferences/encodings
找到 auto_detected 編輯,在Values中分別加入 GB18030,GBK,GB2312,BIG5,將GB18030放到最上面。

OK~

感謝lec的支援。
enca工具很方便,用於檢測檔案內碼(前提是系統環境支援,如,環境不支援BIG5,是無法檢測的,這個暈了我許久)
安裝 sudo apt-get install enca
用法 enca filename

這個工具是在google搜尋到的(http://blog.oolec.com/?p=79),繞了地球一圈才找到,猛發現文章作者就坐在我旁邊,以後再找東西先問問,別瞎跑。


事實上我只新增了對GB18030 與GBK 的支援,就已經解決了亂碼問題,我認為這兩個標準已經足夠


相關文章