解決gedit的亂碼問題

我們知道,Ubuntu下的漢字是以UTF-8爲編碼的。但實際上我們有許多來自Windows的文件,編碼都是GB*(GB18030 GBK GB2312),許多時候都變成了亂碼。如下圖,這是我用gedit打開一個編碼爲GBK的文檔。

encode1

其實在打開選項中,有一個編碼“自動檢測”的選項,點開下拉框發現沒有GB18030,但是下面有添加/刪除,於是我就把GB18030添加了進去。這時候打開文件時編碼選擇“GB18030”。

原以爲問題已經解決了,沒想到事情還沒結束。關閉gedit,在文件瀏覽器中雙擊文檔再次打開,發現又成了上面的亂碼,選擇自動檢測也不行。在網上搜索,發現不少解決方案是這樣的: 在終端中輸入 sudo gconf-editor

依次開啓/apps/gedit-2/preferences/encodings/雙擊右側auto_detected,在彈出對話框中點選Add,添加Values值爲GB2312,確定後選中,點選Up按鈕將其移至第一位。

同樣方法,對show_in_menu進行設置,並將GB2312置於首位。

不少人經過上述這個設置gedit就正常了,可是我的gedit還是在顯示亂碼。經過進一步探究,終於明白了是我的系統不支持GB18030內碼。添加GB18030支持的方法如下 執行 sudo vim /var/lib/locales/supported.d/zh 加入以下配置參數

zh_CN.GB18030 GB18030
zh_CN.GBK GBK
zh_CN.GB2312 GB2312
zh_HK.BIG5 BIG5
zh_TW.BIG5 BIG5
然後執行 sudo locale-gen

提示以下信息,成功了(可能比較慢,耐心等待)
zh_CN.GB18030... done
zh_CN.GBK... done
......

然後再次打開gedit,終於解決了。 encode2

相關日誌