1
Yadomin 2021 年 10 月 16 日 via Android
dpkg-reconfigure locales
|
3
raysonx 2021 年 10 月 16 日 via iPad
怀疑你本地的 ssh 客户端将本地的 LC_*环境变量带到远程了。建议检查本地 ssh_config 文件。
|
4
la9998372 2021 年 10 月 16 日 |
5
hingle 2021 年 10 月 16 日
|
7
skys215 2021 年 10 月 16 日
有安装中文 /utf8 包吗
|
9
bao3 2021 年 10 月 16 日 via iPhone
你的终端也要调整的,并不是只调整 server 端。
|
10
aristolochic 2021 年 10 月 16 日 不考虑 ssh 的话(因为你没说你用的是什么),服务端设置 locale 的正确做法是在 locale.conf 写入
``` LANG=zh_CN.UTF-8 ``` locale.conf 可以是 /etc/locale.conf 、~/.config/locale.conf 、$XDG_CONFIG_HOME/locale.conf 或 $HOME/.config/locale.conf,依据你希望应用的范围和是否修改了默认 HOME 和 XDG_CONFIG_HOME 而定。 locale.conf 的变更会在下次登录时生效,要立刻应用新的设置的话,可以运行: ``` sh $ unset LANG $ source /etc/profile.d/locale.sh ``` 注意到只设置了 LANG 这一个环境变量,这是因为这个变量的值会覆盖掉所有未设置的 LC_* 变量的值。 如果你希望做更加细粒度的控制,去看 manpage 。 你也可以额外设置一个 LANGUAGE,如果上述的 LANG 没有将其设置的话,因为使用 gettext 翻译的软件会按照 LANGUAGE 选择使用的语言。当然现在也不一定,在我常用的 Arch 和 Ubuntu 20.04 中,只设置 LANG 是可以给 LANGUAGE 提供默认值的。 不建议使用 LC_ALL,这个是为了测试和排错使用的临时值,尤其是它不能出现在 locale.conf 文件中。这个变量的值会覆盖掉 LANG 和所有 LC_* 变量的值,无论它们是否设置。 --- 或者运行 ``` sh # localectl set-locale LANG=zh_CN.UTF-8 ``` 如果有 locale.alias 文件的话,理论上你也可以用别名,但考虑到不是所有系统都有,在此不作展开。 |
11
aristolochic 2021 年 10 月 16 日
另外再提一句,如果你的系统有奇怪的 pam 的话,pam_environment 是有可能覆盖 locale.conf 设置的本地化相关环境变量的。如果有 X 相关的东西的话,那更加有可能被 DE/DM 覆盖,这个就得自己找了,先看看 xinitrc,再看看 DM,再看看 DE 。
|
12
billlee 2021 年 10 月 16 日
在 ~/.profile 里设置是正规的做法,linux 本来就可以不同用户有不同 locale.
|
13
liuxu 2021 年 10 月 16 日
debian 一般默认是安装好了 locale 包的
1. 查看当前 locale 以及系统支持的语言 # locale # localectl list-localesC.UTF-8 en_US.UTF-8 很明显此时你没有 zh_CN.UTF-8 2. 取消 /etc/locale.gen 中的“zh_CN.UTF8 UTF8”的注释,并让系统加载 # vim /etc/locale.gen # locale-gen 3. 此时可以看到已经有了 zh_CN.UTF-8 root@li1604-45:~# localectl list-locales C.UTF-8 en_US.UTF-8 zh_CN.UTF-8 4. 使用 zh_CN.UTF-8 # localectl set-locale zh_CN.UTF-8 5. 重新 ssh 登录,此时环境变量全部 zh_CN.UTF-8 root@li1604-45:~# locale LANG=zh_CN.UTF-8 LANGUAGE= LC_CTYPE="zh_CN.UTF-8" LC_NUMERIC="zh_CN.UTF-8" LC_TIME="zh_CN.UTF-8" LC_COLLATE="zh_CN.UTF-8" LC_MONETARY="zh_CN.UTF-8" LC_MESSAGES="zh_CN.UTF-8" LC_PAPER="zh_CN.UTF-8" LC_NAME="zh_CN.UTF-8" LC_ADDRESS="zh_CN.UTF-8" LC_TELEPHONE="zh_CN.UTF-8" LC_MEASUREMENT="zh_CN.UTF-8" LC_IDENTIFICATION="zh_CN.UTF-8" LC_ALL= 6.一般情况你还需要手动设置 LC_ALL,所以在~/.bashrc 里面添加 LC_ALL=zh_CN.UTF-8 然后加载 # source ~/.bashrc |
14
liuxu 2021 年 10 月 16 日
1 中排版有问题,更正一下:
1. 查看当前 locale 以及系统支持的语言 # locale # localectl list-locales C.UTF-8 en_US.UTF-8 很明显此时你没有 zh_CN.UTF-8 |
15
ZeroDu 2021 年 10 月 18 日
同样遇到了,我直接换成英文的了
|
16
cstj0505 2021 年 10 月 18 日
命令行中文觉得有点别扭
|