Linux locale 缺失与安装
1.一般情况
查看当前locale设置:
locale
查看系统目前可用的locale配置:
locale -a
如果某种locale不在上述列表中出现,可以使用locale-gen命令来安装该种locale。
locale-gen zh_CN.UTF-8
上述命令会安装 zh_CN.UTF-8。
修改当前locale配置:
可以直接编辑/etc/default/locale文件,也可以使用如下命令来修改该文件:
update-locale LANG=zh_CN.UTF-8
修改完使用locale查看不一定会立即生效
但是/etc/default/locale文件内参数已修改
使用source /etc/default/locale
立即生效
附:
国际化(Internationalization,简写为I18N)
国际化是指软件能用于多国语言环境的能力。在Linux中通过locale来设置程序运行的不同语言环境,locale由ANSI C提供支持。locale的命名规则为_.,如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集。在locale环境中,有一组变量,代表国际化环境中的不同设置:
LC_COLLATE
定义该环境的排序和比较规则
LC_CTYPE
用于字符分类和字符串处理,控制所有字符的处理方式,包括字符编码,字符是单字节还是多字节,如何打印等。是最重要的一个环境变量。
LC_MONETARY
货币格式
LC_NUMERIC
非货币的数字显示格式
LC_TIME
时间和日期格式
LC_MESSAGES
提示信息的语言。另外还有一个LANGUAGE参数,它与LC_MESSAGES相似,但如果该参数一旦设置,则LC_MESSAGES参数就会失效。
LANGUAGE参数可同时设置多种语言信息,如LANGUANE=“zh_CN.GB18030:zh_CN.GB2312:zh_CN”。LANG
LC_*的默认值,是最低级别的设置,如果LC_*没有设置,则使用该值。类似于 LC_ALL。
LC_ALL
它是一个宏,如果该值设置了,则该值会覆盖所有LC_*的设置值。注意,LANG的值不受该宏影响。
Linux下安装GB2312的示例
Step 1: 到Linux字符集的安装包目录下
[cd /usr/share/i18n/charmaps]
Step 2: 解压该目录下的GB2312.gz //可以从其他计算机拷贝
[gunzip GB2312.gz]
Step 3: 安装字符集
[localedef -f GB2312 -i zh_CN /usr/lib/locale/zh_CN.GB2312]
Step 4: 查看是否已经定义
[locale -a | grep GB2312]
之后再修改/etc/default/locale 文件并用source命令生效