- 命令 locale -a
查看系统支持的语系。如果需要显示中文,则必须要有zh_CN.utf8的语系。如果没有,则需要下载相应的语系(字符集)
sudo apt-get update //ubuntu系统更新软件包列表
sudo apt-get install -y language-pack-zh-hans
sudo apt-get install -y language-pack-zh-hant
- 命令locale
查看当前语系
- 关于永久生效设置
修改文件(debian系列):/etc/default/locale (经过测试,docker的ubuntu系统这个设置没用,若要生效,需要在profile等地方显式export LANG=zh_CN.UTF-8)
修改文件(redhat系列):/etc/sysconfig/i18n
注意:zh_CN.UTF-8、zh_CN.UTF_8、zh_CN.utf8的区别,经过测试貌似没有区别,当然为了保证稳定,最好采用与locale -a 命令下显示的对应语系一致的写法。
附:
作者:穿越时空的眼泪
链接:https://zhuanlan.zhihu.com/p/27477640
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
ocale是软件在运行时的语言环境, 它包括语言(Language), 地域 (Territory) 和字符集(Codeset)。
一个locale的书写格式为: 语言[地域[.字符集]]。完全的locale表达方式是 [语言[地域][.字符集] [@修正值]。
zhCN.GB2312 =中文中华人民共和国+国标2312字符集。
[nick@ubuntu~]$ locale
LANG=en_US.UTF-8
LANGUAGE=”zh_CN:en”
LC_CTYPE=”zh_CN.UTF-8”
LC_NUMERIC=”zh_CN.UTF-8”
LC_TIME=”zh_CN.UTF-8”
LC_COLLATE=”zh_CN.UTF-8”
LC_MONETARY=”zh_CN.UTF-8”
LC_MESSAGES=”zh_CN.UTF-8”
LC_PAPER=”zh_CN.UTF-8”
LC_NAME=”zh_CN.UTF-8”
LC_ADDRESS=”zh_CN.UTF-8”
LC_TELEPHONE=”zh_CN.UTF-8”
LC_MEASUREMENT=”zh_CN.UTF-8”
LC_IDENTIFICATION=”zh_CN.UTF-8”
# LC_ALL=zh_CN.UTF-8
locale:
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)
locale的设定:
LCALL和LANG优先级的关系:LC_ALL > LC > LANG
修改文件(debian系列):/etc/default/locale
修改文件(redhat系列):/etc/sysconfig/i18n
1、如果需要一个纯中文的系统的话,设定LCALL=zh_CN.XXXX,或者LANG=zh_CN.XXXX都可以。
2、如果只想要一个可以输入中文的环境,而保持菜单、标题,系统信息等等为英文界面,那么只需要设定 LC_CTYPE=zh_CN.XXXX,LANG=en_US.XXXX就可以了。
3、假如什么也不做的话,也就是LC_ALL,LC和LANG均不指定特定值的话,系统将采用POSIX作为lcoale,也就是C locale。
LANG和LANGUAGE的区别:
LANG - Specifies the default locale for all unset locale variables
LANGUAGE - Most programs use this for the language of its interface
LANGUAGE是设置应用程序的界面语言。而LANG是优先级很低的一个变量,它指定所有与locale有关的变量的默认值
总结一下:
设定了LCALL就不用设置其他的了,他会强制覆盖掉LC.设置部分LC_和LANG的话,没有设置的LC_*采用的是LANG的值。
1、临时设定编码:[nick@ubuntu~]$ export LC_ALL=”zh_CN.GBK”
2、永久设定编码:修改文件/etc/profile(对所有用户有效)或者~/.bash_profile。在文件尾加入export LC_ALL=zh_CN.GBK
转自:locale的设定中LANG、LC_ALL、LANGUAGE环境变量的区别 - 南山的鱼 - 博客频道 - CSDN.NET
locale 详解 - 欢乐的程序员 - 博客园
编辑于 2017-06-23
