我在 xterm 中没有任何口音问题(我是法国人)。但是,正如您在此屏幕截图中看到的那样,xterm 的顶部栏确实存在一些重音问题:
然而我的 Debian 不稳定系统是 utf8(所以应该没问题):
$ locale
LANG=fr_FR.utf8
LANGUAGE=
LC_CTYPE="fr_FR.utf8"
LC_NUMERIC="fr_FR.utf8"
LC_TIME="fr_FR.utf8"
LC_COLLATE="fr_FR.utf8"
LC_MONETARY="fr_FR.utf8"
LC_MESSAGES="fr_FR.utf8"
LC_PAPER="fr_FR.utf8"
LC_NAME="fr_FR.utf8"
LC_ADDRESS="fr_FR.utf8"
LC_TELEPHONE="fr_FR.utf8"
LC_MEASUREMENT="fr_FR.utf8"
LC_IDENTIFICATION="fr_FR.utf8"
LC_ALL=
如何使用 xterm 顶部栏修复这个小错误?
答案1
来自xterm
文档:
可以使用控制序列设置或查询窗口标签和图标标签。作为 VT220 仿真器,xterm“应该”将相应字符串的字符编码限制为 ISO-8859-1。事实上,过去的情况(并且有记录)窗口标题必须是 ISO-8859-1。这已不再是这种情况。然而,有许多应用程序仍然假设标题是使用 ISO-8859-1 设置的。所以这是默认行为。
如果 xterm 使用 UTF-8 编码运行,则可以使用使用 UTF-8 编码的窗口标签和图标标签。这是因为底层 X 库(以及许多但不是全部)窗口管理器支持此功能。
X 资源设置
utf8Title
告诉 xterm 禁止将标题字符串重新转换回 ISO-8859-1,从而允许将标题字符串解释为 UTF-8。使用本摘要中描述的标题模式控制序列可以启用相同的功能。除了设置标题的功能之外,xterm 还提供查询标题的功能,以 ISO-8859-1 或 UTF-8 格式返回标题。仅当 xterm 使用 UTF-8 编码时,此选项才可用。
最后,发送到标题控件或由标题控件返回的字符比其余控制序列受到的约束更少。为了使它们更易于管理(和约束),以便在 shell 脚本中使用,xterm 有一个可选功能,可以将字符串从十六进制解码(用于设置标题)或在查询值时将标题编码为十六进制。
所以你的选择是:
将标题发送为 latin1:
printf '\e]2;%b\a' 'T\0351l\0351chargement'
将资源设置
utf8Title
为 true:xterm*utf8Title: true
在你的资源文件中。
使用
\e[>2t
序列来启用utf8Title
(和\e[>2T
禁用):printf '\e[>2t\e]2;%s\a' Téléchargement
答案2
你设置了xterm*locale: true
吗.Xresources
?