[原贴名:gedit 打开gb2312中文编码文件乱码的终极解决方案]
Emacs汉化&gedit乱码解决QQ群: 240905967 原理:
修改2个文件(实质上等同于手动修改 gconf-editor 的配置文件):
%gconf.xml
文件1: %gconf.xml
和修改本文件仅对当前用户有效
完整文件路径:默认情况下上面的 encodings目录和下面的%gconf.xml文件都是不存在的代码: 全选
~/.gconf/apps/gedit-2/preferences/encodings/ ~/.gconf/apps/gedit-2/preferences/encodings/%gconf.xml
文件2: %gconf-tree.xml改文件的效果,和某些贴子里说的完整文件路径:代码: 全选
/etc/gconf/gconf.xml.defaults/%gconf-tree.xml
效果相同运行gconf-editor, 再展开“/apps/gedit-2/preferences/encodings/”
编辑右侧的“auto_detected”将“GB18030”添加到最顶上。
其它技术细节、更简单的方法及打好的 DEB 软件包, 可以参考另一个贴子:
fcitx输入法状态条乱码/config配置文件乱码的解决[2011-11-27制做deb包]
viewtopic.php?f=8&t=354420
下载并安装完deb包, 直接对全局用户生效,不用再额外执行其它命令和改动. 如果仍会乱码, 请退出图形界面,重新登陆即可见效.下面2个文件中:手动解决方法:
用 GEDIT 打开任意文本文件,选择另存为,在弹出的菜单中选择并添加相应的文字编码,与本文所说方案,及网上所传运行 gconf-editor 效果相同,可自行体会。
* "shown_in_menu" 的作用: 在另存为时,可以指定文件编码utf-8/gb2312等;
* "auto_detected"的作用: 打开文件时,自动检测编码
文件1: %gconf.xml文件2: %gconf-tree.xml修改本文件仅对当前用户有效
完整文件路径:默认情况下上面的 encodings 目录和下面的 %gconf.xml 文件都是不存在的代码: 全选
~/.gconf/apps/gedit-2/preferences/encodings/%gconf.xml
修改方法:文件内容改为:代码: 全选
mkdir -vp ~/.gconf/apps/gedit-2/preferences/encodings gedit ~/.gconf/apps/gedit-2/preferences/encodings/%gconf.xml
代码: 全选
<?xml version="1.0"?> <gconf> <entry name="shown_in_menu" mtime="1321765642" type="list" ltype="string"> <li type="string"> <stringvalue>UTF-8</stringvalue> </li> <li type="string"> <stringvalue>GB18030</stringvalue> </li> <li type="string"> <stringvalue>GBK</stringvalue> </li> <li type="string"> <stringvalue>GB2312</stringvalue> </li> <li type="string"> <stringvalue>ISO-8859-15</stringvalue> </li> </entry> <entry name="auto_detected" mtime="1321764092" type="list" ltype="string"> <li type="string"> <stringvalue>UTF-8</stringvalue> </li> <li type="string"> <stringvalue>GB18030</stringvalue> </li> <li type="string"> <stringvalue>GBK</stringvalue> </li> <li type="string"> <stringvalue>GB2312</stringvalue> </li> <li type="string"> <stringvalue>CURRENT</stringvalue> </li> <li type="string"> <stringvalue>ISO-8859-15</stringvalue> </li> <li type="string"> <stringvalue>UTF-16</stringvalue> </li> </entry> </gconf>
修改本文件对所有用户有效
完整文件路径:修改方法:代码: 全选
/etc/gconf/gconf.xml.defaults/%gconf-tree.xml
文件内容改为:代码: 全选
sudo gedit /etc/gconf/gconf.xml.defaults/%gconf-tree.xml
代码: 全选
<?xml version="1.0"?> <gconf> <dir name="apps"> <dir name="gedit-2"> <dir name="preferences"> <dir name="encodings"> <entry name="shown_in_menu" mtime="1322489923" type="list" ltype="string"> <li type="string"> <stringvalue>UTF-8</stringvalue> </li> <li type="string"> <stringvalue>GB18030</stringvalue> </li> <li type="string"> <stringvalue>GBK</stringvalue> </li> <li type="string"> <stringvalue>GB2312</stringvalue> </li> <li type="string"> <stringvalue>ISO-8859-15</stringvalue> </li> </entry> <entry name="auto_detected" mtime="1322489926" type="list" ltype="string"> <li type="string"> <stringvalue>UTF-8</stringvalue> </li> <li type="string"> <stringvalue>GB18030</stringvalue> </li> <li type="string"> <stringvalue>GBK</stringvalue> </li> <li type="string"> <stringvalue>GB2312</stringvalue> </li> <li type="string"> <stringvalue>CURRENT</stringvalue> </li> <li type="string"> <stringvalue>ISO-8859-15</stringvalue> </li> <li type="string"> <stringvalue>UTF-16</stringvalue> </li> </entry> </dir> </dir> </dir> </dir> </gconf>