https://linux.cn/lfs/LFS-BOOK-7.7-systemd/chapter07/locale.html
7.7. 系统区域设置
本地语言的支持依赖于 /etc/locale.conf
,/etc/locale.conf
包含不少于此相关的环境变量。更改此文件后,可能会出现以下的变化:
-
大量的程序界面语言的本地化
-
修正字符在字母、数字和其它类的分类。对于非英语区域设置来说,只有这样,bash 才能正常显示非 ASCII 字符
-
国家顺序可以按照字母顺序正常排序(译者注:这里所谓的正常排序,应该是首先将国家名称转换成本地语言的国家名称,比如中国的开头字母是 Z,那么显示就很靠后了。但是假如显示为英文,就是 C 开头,那么将会靠前显示。)
-
默认纸张尺寸
-
货币、时间和日期值的格式
/etc/locale.conf
中 <ll>
使用语言代码代替(比如中文是 zh,英文是 en),<CC>
使用国家代码代替(比如中国是 CN,中国香港是 HK,中国台湾是 TW,美国是 US),<charmap>
使用选定字符集指定的标准字符映射表替换。诸如 “@euro” 这样的可选修饰符也可使用。
运行以下命令可以获得当前 Glibc 支持的本地字符集。
locale -a
字符映射表可能存在很多的别名,比如 “ISO-8859-1” 可以写作 “iso8859-1” 或 “iso88591”。但是有一些程序不支持这些乱七八糟的写法(比如 UTF-8 只能写作 UTF-8,utf8 它就不认识了)。所以,为了安全起见,在设置的时候还是尽量的使用特定区域设置的规范名称。可以通过以下命令,查询在特定区域下的 字符映射表标准名称,<locale name>
为运行 locale -a 输 出的首选区域设置(这里以 zh_CN.utf8 为例)。
LC_ALL=<locale name>
locale charmap
对于 “zh_CN.utf8” 以上命令将会如下输出:
UTF-8