Ubuntu的locale命令
在Ubuntu中输入locale命令可以查看系统的本地环境设置。在我的机器上运行locale命令,结果如下:
LANG=zh_CN.GBK
LANGUAGE=zh_CN:zh
LC_CTYPE="zh_CN.GBK"
LC_NUMERIC="zh_CN.GBK"
LC_TIME="zh_CN.GBK"
LC_COLLATE="zh_CN.GBK"
LC_MONETARY="zh_CN.GBK"
LC_MESSAGES="zh_CN.GBK"
LC_PAPER="zh_CN.GBK"
LC_NAME="zh_CN.GBK"
LC_ADDRESS="zh_CN.GBK"
LC_TELEPHONE="zh_CN.GBK"
LC_MEASUREMENT="zh_CN.GBK"
LC_IDENTIFICATION="zh_CN.GBK"
LC_ALL=
可以通过以下方式修改Ubuntu的本地环境:
1) cd /etc/default/ 可以看到这个目录下有一个locale文件。
2) vim locale 在我的Ubuntu上打开locale文件,可以看到下面的内容:
LANG="zh_CN.GBK"
LANGUAGE="zh_CN:zh"
3) 可以通过修改LANG和LANGUAGE的值来修改本地环境。假设修改为UTF-8编码的英文:
LANG="en_US.UTF-8"
LANGUAGE="en_US:en"
4) 退出系统重新登录并运行locale命令,可以看到本地环境已经改变。
注意:如果在第三步中将locale文件的内容全部删除,使其成为空文件,那么在第四步中将看到本地环境被设置为POSIX。
Ubuntu的locale-gen命令
local-gen用来生成一系列的locale定义文件,Ubuntu正是根据这些文件来确定相应的locale格式。locale-gen会根据目录/var/lib/locales/supported.d/下的local文件生成相应的一系列locale文件。生成的文件默认存放在/usr/lib/locale/目录下。
在我的机器上/var/lib/locales/supported.d/local这个文件的内容为下:
en_US.UTF-8 UTF-8
zh_CN.GBK GBK
当运行命令locale-gen之后,将会在/usr/lib/locale/目录下生成两个文件夹en_US.utf-8和zh_CN.gbk,这两个目录中包含了相应的一系列locale文件。
如果想让我的Ubuntu支持zh_CN.UTF-8,那么需要按照以下步骤进行操作:
1) 修改文件/var/lib/locales/supported.d/local,在其中添加一行zh_CN.UTF-8 UTF-8
2) 使用管理员帐户运行locale-gen命令,运行完之后将在/usr/lib/locale/目录下发现一个新的文件夹zh_CN.utf-8
这样我的Ubuntu系统就获得了支持zh_CN.UTF-8的能力,然后可以按照前面所说的方法修改文件/etc/default/locale中的LANG和LANGUAGE变量值为zh_CN.UTF-8和zh_CN:zh并重新登录Ubuntu就可以转换到zh_CN.UTF-8的本地环境中。
Ubuntu支持的所有locale
文件/usr/share/i18n/SUPPORTED中列出了Ubuntu支持的所有locale。如果要使用这个文件中列出的某个locale,必须先通过locale-gen生成相应的一系列定义文件。
应用
由于windwos的命令行工具cmd只支持GBK的编码方式,而Ubuntu的默认安装一般支持的是UTF-8的编码方式,所以在cmd中使用telnet登录Ubuntu就会产生部分乱码问题。可以通过上面介绍的命令将Ubuntu的locale设置为zh_CN.GBK,从而解决乱码问题。
小结
主要的几个文件和目录:
/etc/default/locale
/var/lib/locales/supported.d/local
/usr/lib/local/
/usr/share/i18n/SUPPORTED
有关locale和locale-gen的更多信息,请直接man。
转发至微博
转发至微博
评论