ubuntu解决中文乱码问题

来源:互联网 发布:淘宝订单数据 编辑:程序博客网 时间:2024/05/22 05:25


Ubuntu 默认采用UTF8编码,可以方便global。但对中文支持,还不细致,即便默认采用中文安装,也并不会自动添加GB*等支持,致使在Ubuntu下访问部分Win文本文件时,出现乱码。
I. 配置系统环境
执行 sudo vi /var/lib/locales/supported.d/en
加入以下配置参数
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
OK~

Windows下中文的默认编码是bg2312,Linux下默认编码是utf-8。

enca工具可用于检测文件内码(前提是系统环境支持,如,环境不支持BIG5,是无法检测的,这个晕了我许久)

安装:apt install enca

使用方法:

enca -L zh_CN +查看编码的文件名

enca -L zh_CN -x UTF-8 +预转换为UTF-8的文件名(此举将覆盖源文件)

enca -L zh_CN -x UTF-8  < +预转换为UTF-8的文件名  >  +另存为地址

参考资料:http://www.cnblogs.com/hoys/archive/2011/08/11/2134653.html

                  http://blog.csdn.net/qdylan/article/details/39499041