解决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

相关日志