打算搬迁自己的笔记到组里的服务器上,又因为是服务器,对环境限制比较多,不会随便安装一些包和lib库,所以大家基本上都是docker开自己的容器用。
然后:
终端无法显示中文,实际上zsh
的命令补全还是能显示中文的,但是终端就是不行
按照找到的教程,locale
和locale -a
查看本地正在使用以及支持的字符集:
这里看到LC_ALL=C
,按照某个教程里的说法,C
就是POSIX
,是不支持中文显示的,修改为zh_CN.utf8
或者C.utf8
就可以了,实测都是有效的,似乎是排序上有一些不同
后记
关于各种LC_*
变量以及LANG
变量,看到的说法是LC_ALL
是指定所有的字符集设置[1],看到很多教程上说让修改LANG
变量,实际上试了一下是没用的
比如LANG=C.utf8
且LC_ALL=C
,可以看到还是显示不了中文:
包括把LANG
设置为zh_CN.utf8
也没有用:
总的来说就是,只要LC_ALL
是不支持中文字符的C
,修改LANG
就没有用,主要是LC_ALL
变量的设置,因为设置了LC_ALL
变量,其他的LC_*
变量也都修改了,但是只设置LANG
就会只修改LANG
,如图修改LC_ALL
:
and,很多教程里有的地方写的是zh_CN.UTF-8
,有的是zh_CN.utf-8
,测试了一下,设置LC_ALL=zh_CN.UTF-8
也是有效的,但我觉得还是和locale -a
的某一行输出(for example zh_CN.utf8
)里保持一致可能会好一点,这一点可能需要去翻一翻文档去确认一下怎么设置最规范,但是我没有去翻
如果locale -a
输出里没有自己需要的字符集,可以通过dpkg-reconfigure locales
安装,如果显示没有locales
,需要安装locales
[2]
后后记
无语,忘记是什么时候的事,.zshrc
里我自己添加了字符集的设置:
我就说为什么设置了/etc/environment
没有用,总之,不管是/etc/environment
还是.zshrc
,能把LC_ALL
变量设置成zh_CN.utf8
而不是C
就行