1、查看当前语言变量值
$ locale
2、查看系统内安装的语言
$ locale -a
3、临时修改语言值
$ export LC_ALL=en_US.UTF-8
$ export LANGUAGE=en_US:en
$ export LC_ALL=zh_CN.UTF-8
GB18030
$ export LANGUAGE=zh_CN:zh:en_US:en
4.1、永久修改系统的语言值
修改文件/etc/profile(对所有用户有效)或者~/.bash_profile。在文件尾加入上面的修改值。重新登录生效。
4.2、永久修改系统的locale值
修改文件(debian系列):/etc/default/locale
修改文件(redhat系列):/etc/sysconfig/i18n
在文件尾加入上面的修改值。重启电脑生效。
其它工具正常显示设置:
SecureCRT:Options->SessionOptions->Appearance->Character encoding设置成和linux系统一样的字符编码。
说明:
LANG和LANGUAGE的区别:
LANGUAGE - Most programs use this for the language of its interface
LANG - Specifies the default locale for all unset locale variables
LANGUAGE是应用程序的界面语言,应用程序用这个值来确定界面用什么语言显示。
LANG是优先级最低的一个locale值,决定显示绘图时使用的字符集,是否显示乱码和这个值有关。
默认情况:LANGUAGE值不存在,LANG=C(即POSIX类型)
LANG和LC_ALL的区别:
LANG是优先级很低的一个变量,它是LC_*不存在时的默认值。LC_ALL 是一个优先级最高的变量,它总是覆盖已经存在的LC_*,不管LC_*是否存在都会被覆盖。
而具体到某一种类型字符,在显示时它用本地字符集实际起效果的就是LC_*。
简单的说:LC_ALL和LANG优先级的关系:LC_ALL > LC_* > LANG
特别提示:运行 $ locale 命令时有""号包含LC_*的都是不存在的变量,显示的是LANG值,或者LC_ALL值。(想清除变量用unset命令)
Locale说明:
locale是根据用户所使用的语言(Language), 地域 (Territory) 和字符集(Codeset),以及当地的文化传统所定义的一个软件运行时的语言环境。书写格式为: 语言[_地域[.字符集]],比如:en_US.UTF-8
locale把按照所涉及到的文化传统的各个方面分成12个大类,这12个大类分别是:
1、字符输入(LC_CTYPE)
2、数字(LC_NUMERIC)
3、比较和排序习惯(LC_COLLATE)
4、时间显示格式(LC_TIME)
5、货币单位(LC_MONETARY)
6、信息:主要是提示信息,错误信息,状态信息,标题,标签,按钮和菜单等(LC_MESSAGES)
7、姓名书写方式(LC_NAME)
8、地址书写方式(LC_ADDRESS)
9、电话号码书写方式(LC_TELEPHONE)
10、度量衡表达方式 (LC_MEASUREMENT)
11、默认纸张尺寸大小(LC_PAPER)
12、对locale自身包含信息的概述(LC_IDENTIFICATION)