locale 是 Linux 系统中多语言环境的接口,每个 locale 都定义了地区、语言和字符集。locale 的语法规则是:<语言>_<地区>.<字符集编码><@修正值>,如 zh_CN.UTF-8 中,zh 表示中文,CN 表示中国大陆,UTF-8 表示字符集。
查看可用的字符集
locale -a
可以列出所有可用的语言环境/字符集,加 -v
选项可以输出更详细的信息。
ubuntu@ns524146:~$ locale -av
locale: en_US.utf8 archive: /usr/lib/locale/locale-archive
-------------------------------------------------------------------------------
title | English locale for the USA
source | Free Software Foundation, Inc.
address | https://www.gnu.org/software/libc/
email | [email protected]
language | American English
territory | United States
revision | 1.0
date | 2000-06-24
codeset | UTF-8
locale: C.utf8 directory: /usr/lib/locale/C.utf8
-------------------------------------------------------------------------------
title | C locale
email | [email protected]
revision | 2.1
date | 2022-01-30
codeset | UTF-8
ubuntu@ns524146:~$
这些 locale 在 ubuntu 系统中的默认存放位置为:/usr/share/i18n/locales
检查中文字符集
$ locale -a | grep ^zh
如果没有任何输出,则说明字符集没有安装。
安装中文字符集
运行命令进行安装。
sudo apt install language-pack-zh-hans
启用语言集
通过修改 /etc/locale.gen
文件,将 #zh_CN.UTF-8 UTF-8
前面的注释去掉保存,并执行 sudo locale-gen
命令使之生效。