06 语言和语系
修改当前 Shell 的语言
bash
export LANGUAGE=en_US.UTF-8很多资料写的是 LANG,我试过,这个变量已经失效了,其功能已经被 LANGUAGE 取代。
没有 en_US.utf8 语系
bash
binzz@C7VF:~$ locale -a # 查看已安装的语系
C # 默认的最小化 locale,使用 ASCII 字符集,适用于简单的英文环境。
C.utf8 # 类似 C,但支持 UTF-8 编码,能处理基本的 Unicode 字符。
POSIX # 与 C 完全相同的传统标准 locale,用于兼容性。
zh_CN.utf8 # 简体中文(中国),UTF-8 编码,支持中文字符和区域格式(如日期、货币)。
zh_SG.utf8 # 简体中文(新加坡),UTF-8 编码,类似 zh_CN 但可能包含新加坡特定的区域设置。
binzz@C7VF:~$解决方案:
bash
sudo locale-gen en_US.UTF-8- locale:语系
- gen:generate(v.产生,生成)这个单词的前三个字母
或者,进行如下步骤,剖析上面一句的原理。
- 打开
/etc/locale.gen文件,需要sudo。打开后可以看到如下内容(选自前几行):bash# This file lists locales that you wish to have built. You can find a list # of valid supported locales at /usr/share/i18n/SUPPORTED, and you can add # user defined locales to /usr/local/share/i18n/SUPPORTED. If you change # this file, you need to rerun locale-gen. # C.UTF-8 UTF-8 # aa_DJ ISO-8859-1 # aa_DJ.UTF-8 UTF-8 # aa_ER UTF-8 - 将
en_US.UTF-8一行的#去掉,即取消注释。并保存文件。这么多语系被注释掉了,我怎么找到未被注释的语系呢?用到正则表达式
^[^#],表示不以#开头([^#])的行(^)。在nano中以Ctrl+W搜索(查找),处处都有按键提示;在vim中在命令模式下输入“/”进入搜索>(查找)模式;均支持正则表达式。 - 加入
en_US.utf8语系bash会generate上述文件(sudo locale-gen/etc/locale.gen)中未被注释的所有语系。准确来说,是安装。适合批量安装语系。而第一种方法,sudo locale-gen en_US.UTF-8,是在安装单一语系。
两种方法讲完了,别忘了再次使用locale -a验证哟!