使用 Likewise-Open 身份验证时,X-Terminals 无法正确显示 UTF-8 字符

使用 Likewise-Open 身份验证时,X-Terminals 无法正确显示 UTF-8 字符

我在使用 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)。

相关内容