在 gnome 终端以及 xfce4 终端中,当我将其字符编码从标准 UTF-8(特殊字符为 2 个字节)更改为 ISO-Latin 8859-15(始终为 1 个字节)时,会发生以下情况:
虽然输出 ISO-Latin 编码的文本可以正常工作,例如:
cat textfile-iso-latin.txt
但是输入并不像预期的那样工作。当我在同一个终端上使用键盘输入特殊字符(如 Umlaut、Sonderzeichen、äöü)时,我需要按两次键盘上的键才能使其显示。
键盘是否仍处于 UTF-8 模式,其中此类特殊字符占用两个字节?我该如何改变这种行为才能让这个问题消失?
谢谢。
答案1
在完整的 UTF-8 环境中运行的 bash shell 中获取 ISO-Latin 编码输入和输出的最简单方法(与 Ubuntu 一样)是使用在此处相关但不完全相同的问题中提到的解决方法:“使用命令切换终端的编码“
当我在 UTF-8 xfce-terminal 或 gnome-terminal 中运行旧的 ISO-Latin 编码程序时,如下所示:
luit -encoding iso-8859-15 gawk -f script.awk
...然后 luit 工具将我的程序(在本例中为 Awk 脚本)的 ISO-Latin 编码输入和输出转换为 UTF-8 编码终端。
这个解决方法效果很好(到目前为止)。