我有一台 Debian 服务器,在本地登录时未启动 X11,无法正确显示 Unicode 字符。 Unicode 在运行后起作用unicode_start
(直到终端关闭)。通过 SSH 登录时它也会自动工作(大概是因为它取决于我的终端模拟器而不是服务器的)。
区域设置似乎设置正确,我的猜测是登录提示后打开的终端getty
根本没有以“Unicode 渲染模式”启动(我不知道这方面的技术术语)。我可以通过打印手动更改为 Unicode 模式适当的控制字符或 running 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
答案1
重新配置console-setup
包或设置CHARMAP="UTF-8"
并/etc/default/console-setup
重新启动服务,如所述这里导致任何新终端以 Unicode 模式打开。
或者为了含糊地回答我原来的问题措辞,终端通过console-setup
包中的魔法被置于 Unicode 模式。