热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

当前位置 :| 主页>Linux教程>Linux入门>

将 locale 从 zh_CN.GB2312 转到 zh_CN.UTF-8 的一些问题和解决方法

来源: 作者: 时间:2008-05-26 Tag: 点击:

在这种情况下,一种不需要重新设置 X 系统的 locale,实时修改运行状态下的 rxvt-unicode 本身的 locale 设置的解决方案是使用 rxvt-unicode 内置的”escape sequence”来实现。

如下的 2 个命令组合,先更改 bash 的 locale 设置,然后通过”escape sequence”通知 rxvt-unicode 程序,现在这个 session 的 locale 设置已经被改成了 zh_CN.GB2312:

joseph@PeT43: ~ > export LC_CTYPE=zh_CN.gb2312; printf "\33]701;$LC_CTYPE\007"

这样,你就实时的得到一个 zh_CN.GB2312 的环境,可以对 zh_CN.GB2312 的文件进行正确的显式和操作了。

如果需要转回到 zh_CN.UTF-8 的模式,则可以通过如下的命令来实现:

joseph@PeT43: ~ > export LC_CTYPE=zh_CN.utf8; printf "\33]701;$LC_CTYPE\007"

当然,每次敲这么长的命令挺烦人的,我用的方法是把上面的这 2 个命令集合分别存成 .bash.gb 和 .bash.utf-8 两个文件,放到我的 home 目录。

如果我需要实时得到一个 GB2312 的 rxvt-unicode session,我就运行:

joseph@PeT43: somewhere > source ~/.bash.gb

如果我需要实时得到一个 UTF-8 的 rxvt-unicode session,我就运行:

joseph@PeT43: somewhere > source ~/.bash.utf-8

这样就省却了很多敲键盘或者 copy/paste 的时间。:)

这个方法是从 rxvt-unicodeFAQ 中学来的。这个”701″的 escape sequence 是 rxvt-unicode 对 xterm 的 escape sequence 的扩展,只在 rxvt-unicode 中有效。

[在 GNOME Terminal 里面可以通过菜单里面的”Terminal|Set Character Encoding”来实时更改 locale。]

5、VIM 配置文件的更新

我是一个 VIMmer,以下是一些我在 UTF-8 环境下的 vim 的配置:

set encoding=utf-8 " set default encoding as UTF-8

set fileencodings=ucs-bom,utf-8,cp936,latin1 " fileconding detection order

set termencoding=utf-8 " support Chinese display in rxvt-unicode

6、Misc

以下是一些小技巧,简单罗列在下面。

a. 在做编码转换的时候,如果你的源格式设定为 GB2312 的话,而且在转换成 UTF-8 的时候,发现程序会报“illegal input sequence at position xxxx”的错误。这是由于你之前的做的假定有问题。GB2312 是国标里面一个最小也是最早的中文编码标准。其中,只涵盖了 6,763 个汉字。所以你需要转换的文件的原始的格式可能并不是 GB2312 编码。这个时候,你可以用 GB18030 做为源格式来进行转换。GB18030 是最新的国家标准,包含了 27,564 个汉字,而且向下兼容 GB2312 和 GBK。

b.另外,支持 Unicode 且 Free 的中文字库我推荐使用”文泉驿“。这好像也是目前为止,唯一的一个以支持 Unicode 为出发点的 Free 的中文字库。

7、一些有用的参考:

a. Markus Kuhn 的”UTF-8 and Unicode FAQ for Unix/Linux“。最为详尽的 FAQ。

b. Unicode Home Page。Unicode 的官方网站。

c. A Quick Primer On Unicode and Software Internationalization Under Linux and UNIXEd Trager 提供的一个关于如何在 Linux 下使用 Unicode 的 tutorial,涵盖了一些我没有提及的内容。推荐阅读。




相关文章:
linux U盘启动盘制作
Linux设置启动程序
free -m
多核技术与并发多线程技术介绍
理解Linux的性能
section.2 booting and shutting down 引导与关机
Linux — 目录的读权限与执行权限
Linux — 硬链接与符号链接
Linux裸设备总结
linux系统文件综述
Linux下硬盘数据恢复与分区表恢复
./configure命令常用选项详解
浅谈如何学习linux
grub双系统启动顺序更改
Linux 下实现远程开机
Linux系统清除Grub的几种方法
AIX如何才能看出网线是否插好?
vxvm 逻辑卷管理中遇到的问题
linux系统文件认识
Linux守护进程列表
关于/dev/null
FreeBSD学习笔记
Linux简明教程
linux任重道远
在Linux里设置环境变量的方法(export PATH)
关于.bashrc和.vimrc不能自动被执行的问题
linux优秀网站列表
关于swap,虚拟内存和page的区别
Linux系统下系统目录详解
Cooperative Linux