如何在Ubuntu下添加中文字符集支持(解决中

如何在Ubuntu下添加中文字符集支持(解决中,第1张

对GBK,GB2312,GB18030字符集支持是UBUNTU中文乱码的罪魁祸首,其实我们可以在保持UTF-8为默认编码的条件下添加对这几个编码的支持,以解决中文乱码问题。

我想这个问题肯定有其他人已经解决了,但我在论坛找了一会儿没找到。写这帖子就是想方便大家以后的使用。

装过Arch的同学都有感触,,在Arch下字符集需要自己去选择,你可以把GBK作为默认字符集,也可以是UTF-8,当然我建议是UTF-8,同时增加对GBK,GB2312,GB18030的支持。

在UBUNTU下实现这个也很简单,你不用去改系统的默认编码,也不用改Gedit的默认编码。

系统支持编码的修改如下:

1.

cat /usr/share/i18n/SUPPORTED

说明:查看系统支持的字符集,你需要注意的是支持字符集的格式,如对中文会有以下一些显示(我的系统如此,我不知是否普遍)

zh_CN.GB18030 GB18030

zh_CN.GBK GBK

zh_CN.UTF-8 UTF-8

zh_CN GB2312

2.

sudo vim /var/lib/locales/supported.d/local

说明:打开系统字符集配置文件,将支持的中文字符集添加进去,格式如1中得到所示。

3.

sudo locale-gen

说明:更新。如果2中添加正确应该没有问题,如果出问题再次编辑2,后再3直至解决。如果正确此时应该可以使用VIM查看GBK编码的文件了,没有编码。但此时用Gedit还不可以,现在我们添加Gedit的字符集支持。

1.

gconf-editor

打开Gnome配置编辑器

2.

app/gedit/preferences/encodings

修改键值

auto_detected

添加入GBK,GB2312,GB18030

如果 *** 作成功现在Gedit也没乱码了。

方法一:在SQL语句中将'&'替换成chr(38),因为chr(38)是‘&’的ASCII码

SQL>Select 'Tom' || chr(38) || 'Jerry' from dual

方法二:分拆原来的字符串

SQL>Select 'Tom' || '&' || 'Jerry' from dual

备注:如果是在命令行执行,可以设置 ”Set define OFF“,之后在正常执行sql语句即可。

今天开始把工作环境全部迁移到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 的支持,就已经解决了乱码问题,我认为这两个标准已经足够


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/bake/11644025.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-17
下一篇2023-05-17

发表评论

登录后才能评论

评论列表(0条)

    保存