我在使用 X 终端仿真器时遇到了一个非常奇怪的问题。我想使用 UTF-8,它在我的系统其他地方都可以使用,但在图形终端上却不行。当我启动 Urxvt 并按下 öäå 键时,它不会呈现任何内容。如果我在父终端内启动一个新的 Urxvt 终端,一切都会正常。在 tty 中一切正常(Crtl + Alt + F1)。
我们正在使用同样-打开连接域。我不知道,但是这会导致语言环境出现一些问题吗?
我在询问之前做了什么?
- 尝试了不同的终端(Urxvt 和 xterm),但都不起作用
- 尝试更改字体
- 甚至尝试了不同的桌面环境(awesome 和 xfce)
- 尝试不同的 shell(zsh、bash)
我也对不同的用户进行了测试。一个是本地用户,另一个是使用 Likewise-open 进行域身份验证的用户。本地用户一切正常,即使它们具有相同的区域设置。
以下是运行语言环境的输出(两个用户具有相同的语言环境设置):
LANG=en_US.UTF-8 语言=en_US:en LC_CTYPE="en_US.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=en_US.UTF-8
据我正确理解的LC_CTYPE
是 Urxvt 使用的环境变量。
我不知道如何解决这个问题,但希望其他人知道。
答案1
这看起来就像您在 .profile 或 .bashrc 或其他地方设置了 $LC_CTYPE。这在您的第一个终端之前尚未运行,因此该终端在其环境中没有它的情况下启动:
在里面-(启动)->显示管理器-(启动)->桌面环境-(启动)->终端-(启动)->壳
然后,shell 会获取其启动文件(.profile、.bashrc、.zshrc、.login,无论您的 shell 是什么),该文件会设置环境,只有当您启动终端时,它才知道应该使用什么语言环境设置。
您需要在链的上部设置 LC_CTYPE - 在哪里以及如何设置,取决于您的桌面环境(我希望您不使用“仅仅是一个窗口管理器”,可能是 gnome 或 KDE?)、显示管理器(gdm 或 kdm 或 xdm 或 lightdm 或其他)、init 变体(传统的“sysv 风格”或 upstart)。