在安装过程中选择了中文,但使用root账户登录时,环境变量变成了LANG=C,执行locale命令也全是C。这导致程序日志中的中文全部变成了问号。而其他账户就不会出现该问题。
我在尝试了网上以下方法后,重新登录后环境变量LANG还是会变回C。
-
❌️修改
/etc/default/locale这个是安装时指定的,默认就是zh_CN.UTF-8,所以修改无效
LANG="zh_CN.UTF-8" LANGUAGE="zh_CN:zh" -
❌️通过
localectl set-locale LANG=C.UTF-8修改这个修改的就是1中的文件,在执行之前,我发现执行
localectl时反馈的System Locale已经和/etc/default/locale中的配置相同了。 -
❌️用
dpkg-reconfigure locales重新配置locale这个分2步,第一步是勾选要安装的字符集,第二步设置默认字符集.
同样的,如果安装时就选择了简体中文,那么这一步也都会是
zh_CN.UTF-8,依旧修改无效 -
❌️修改
/etc/locale.confDebain 12没有这个文件,说明也不是在这里覆盖了环境变量
-
❌️修改
/etc/profile或~/.bashrc,添加export LANG="zh_CN.UTF-8"修改后调用
source /etc/profile后LANG会改变,但重新登录后还是会变回去但如果把locale中的所有环境变量都指定成
zh_CN.UTF-8,只有LANG和LANGUAGE还是C。说明还有别的地方在修改这2个环境变量。
✔️ 直到我发现~/.profile文件中有这么一段
# Installed by Debian Installer:"
# no localization for root because zh_CN.UTF-8"
# cannot be properly displayed at the Linux console"
LANG=C
LANGUAGE=C
因为不确定能否在控制台中正确显示安装时设定的语言,所以就把root账户的语言设成了C。😅
只要把这2行注释掉,重新登录后root的locale就不会再变回C了。