Wednesday, April 25, 2007

从UTF8到GBK

UTF8其实是很好的编码,这个星球上所有的语言都支持,以前我的ubuntu一直用UTF8。
但, windows是用GBK的,我在ubuntu下写完的latex源文件在windows下就是乱码,得转编码才能看。因此,为了照顾windows,我决定把ubuntu的编码改成GBK。

ubuntu的locale设置好像很诡异,有若干个配置文件都管这个的,但我还没搞清楚它们有什么区别。不管了,能设置的都设置一遍。

export LC_ALL=zh_CN.GBK

然后修改 /etc/enviroment
LANG="zh_CN.GBK"
LANGUAGE="zh_CN:zh:en_US:en"

在 /usr/lib/locale 如果没有某个编码目录,则用 locale-gen 生成:
sudo locale-gen zh_CN.UTF-8
sudo locale-gen zh_CN.GBK
sudo locale-gen zh_CN.GB18030
sudo locale-gen zh_CN.GB2312
然后
cd /usr/lib/locale
sudo localedef --add-to-archive zh_CN
sudo localedef --add-to-archive zh_CN.utf8
sudo localedef --add-to-archive zh_CN.gb18030
sudo localedef --add-to-archive zh_CN.gbk

修改 /var/lib/locales/supported.d/local
zh_CN.UTF-8 UTF-8
en_US.UTF-8 UTF-8
zh_CN.GB2312 GB2312
zh_CN.GB18030 GB18030
zh_CN.GBK GBK
再 sudo locale-gen

最后,别忘了把 /etc/fstab 中每个windows分区的编码改为gbk
如果是ntfs格式,把mount参数中的 nls=utf8 改为 nls=cp936
如果是fat格式,把mount参数中的 utf8 改为 codepage=936

重启后,一切正常,把终端的编码也改成GBK,各种命令的中文提示正常显示,不过audacious的歌曲列表需要手动重新载入一次(我最初忘了改fstab中win分区的编码,结果win分区中的文件无法打开,迷惑了许久才意识到这个问题。改完以后就ok了)。

No comments:

 
/* google analytics */