Debain 12 解决root账户无法设置中文的问题

1,084 阅读2分钟

在安装过程中选择了中文,但使用root账户登录时,环境变量变成了LANG=C,执行locale命令也全是C。这导致程序日志中的中文全部变成了问号。而其他账户就不会出现该问题。

我在尝试了网上以下方法后,重新登录后环境变量LANG还是会变回C。

  1. ❌️修改/etc/default/locale

    这个是安装时指定的,默认就是zh_CN.UTF-8,所以修改无效

    LANG="zh_CN.UTF-8"
    LANGUAGE="zh_CN:zh"
    
  2. ❌️通过localectl set-locale LANG=C.UTF-8修改

    这个修改的就是1中的文件,在执行之前,我发现执行localectl时反馈的System Locale已经和/etc/default/locale中的配置相同了。

  3. ❌️用dpkg-reconfigure locales重新配置locale

    这个分2步,第一步是勾选要安装的字符集,第二步设置默认字符集.

    同样的,如果安装时就选择了简体中文,那么这一步也都会是zh_CN.UTF-8,依旧修改无效

  4. ❌️修改/etc/locale.conf

    Debain 12没有这个文件,说明也不是在这里覆盖了环境变量

  5. ❌️修改/etc/profile~/.bashrc,添加export LANG="zh_CN.UTF-8"

    修改后调用source /etc/profile后LANG会改变,但重新登录后还是会变回去

    但如果把locale中的所有环境变量都指定成zh_CN.UTF-8,只有LANGLANGUAGE还是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了。