基本介绍
locale 是 Linux 系统中多语言环境的设置接口,为计算机上提供了国际化和本地化转化的环境。系统运行语言环境
C是系统默认的locale,而POSIX是C的别名,这是标准的C Locale。它所指定的属性和行为由ISO C标准所指定
Linux中locale文件存放位置: /usr/share/i18n/locales
字符集
/usr/share/i18n/charmaps
文件编码转换(iconv命令)
1.系统语系和软件的语系数据
配置文件位置
centos
cat /etc/locale.conf
ubuntu
cat /etc/environment
locale默认文件存放位置: /usr/share/i18n/locales
locale 时,系统是列出目前 Linux 主机内保有的语系档案,
这些语系档案都放置在: /usr/lib/locale/ 这个目录中。
命令行
localectl
locale
locale 由ANSI C提供支持。locale 的命名规则为<语言>_<地区>.<字符集编码>,
如zh_CN.UTF-8,zh代表中文,CN代表大陆地区,UTF-8表示字符集
export LC_ALL=en_US.utf8
说明
优先级:LC_ALL > LC_* > LANG
操作步骤
查看当前系统所有可用 locale
设置系统的 locale
echo $LANG
最小单元
apt-get install locales 命令安装locales包
如果某种locale不在上述列表中出现,可以使用locale-gen命令来安装该种locale。
locale-gen zh_CN.UTF-8
locale-gen可以把原始的/usr/share/i18n中的文件complie成系统能用的/usr/lib/locale/地字符集。
所以当使用locale-gen 命令出现由某些文件确实而失败的情况,往往是由/usr/share/i18n缺失
联网安装
(2)apt-get install language-pack-zh-hans //安装对应的语言包:(这里也是安装中文包,一般来说操作系统都是英文的,所以英文的一般都不需要安装)
language-pack-en ,language-pack-en-base
(3)locale-gen zh_CN.UTF-8 //添加中文支持
参考 https://packages.ubuntu.com/
2.软件的语言环境
python locale.Error unsupported locale setting
export LC_ALL="en_US.UTF-8"
export LC_CTYPE="en_US.UTF-8" 语言符号及其分类(LC_CTYPE)
##默认的编码
python3 -c 'import locale; print(locale.getpreferredencoding())'
脚本
import locale
alllocale = locale.locale_alias
for k in alllocale.keys():
print 'locale[%s] %s' % (k, alllocale[k])
在Java里,有Locale.getAvailableLocales()可以用