我有一台 Debian 服务器,在本地登录时未启动 X11,无法正确显示 Unicode 字符。Unicode 在运行后起作用unicode_start
(直到终端关闭)。通过 SSH 登录时它也会自动工作(大概是因为它取决于我的终端模拟器而不是服务器的)。
区域设置似乎设置正确,我的猜测是getty
登录提示后打开的终端根本没有以“Unicode 渲染模式”启动(我不知道这方面的技术术语)。我可以通过打印适当的控制字符或运行 来手动更改为 Unicode 模式unicode_start
,但是在良好的情况下,当它自动工作时,是什么导致切换到 Unicode 模式呢?
root@server:~# locale -a
C
C.UTF-8
de_CH.utf8
en_US.utf8
POSIX
root@server:~# locale
LANG=en_US.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=de_CH.UTF-8
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
root@server:~# echo $TERM
linux
按照此处所述重新
console-setup
配置包或设置CHARMAP="UTF-8"
并/etc/default/console-setup
重新启动服务会导致任何新终端以 Unicode 模式打开。或者为了含糊地回答我原来的问题措辞,终端通过包中的魔法被置于 Unicode 模式
console-setup
。