无法在终端中输入任何特殊字符或变音符号

jon*_*nas 16 linux terminal special-characters

环境:
我使用 Ubuntu 11.10,wmii 3.9 作为 GUI,uxterm 作为终端,bash 作为 shell。硬件是带有 Swissgerman 键盘布局的 Lenovo ThinkPad W500(因此我需要变音)。我正在使用 ibus 输入日语。

症状:
当我键入键/字符时~^在终端中什么也没有发生。如果我按ö' (arg: 6)' 出现,ä没有任何反应,ü有时会出现历史记录中的命令。
到目前为止,我测试的所有终端(gnome-terminal、xfce4-terminal、xterm)中的行为都是相同的。它可以在其他 X 应用程序中按需要工作,如铬浏览器、Skype 或文本编辑器。

附加信息:

> locale
LANG=de_CH.UTF-8
LANGUAGE=en_US:en
LC_CTYPE=en_US.UTF-8
LC_NUMERIC="de_CH.UTF-8"
LC_TIME="de_CH.UTF-8"
LC_COLLATE=en_US.UTF-8
LC_MONETARY="de_CH.UTF-8"
LC_MESSAGES=en_US.UTF-8
LC_PAPER="de_CH.UTF-8"
LC_NAME="de_CH.UTF-8"
LC_ADDRESS="de_CH.UTF-8"
LC_TELEPHONE="de_CH.UTF-8"
LC_MEASUREMENT="de_CH.UTF-8"
LC_IDENTIFICATION="de_CH.UTF-8"
LC_ALL=

> setxkbmap -print
xkb_keymap {
        xkb_keycodes  { include "evdev+aliases(qwerty)" };
        xkb_types     { include "complete"      };
        xkb_compat    { include "complete"      };
        xkb_symbols   { include "pc+ch+inet(evdev)+terminate(ctrl_alt_bksp)"    };
        xkb_geometry  { include "pc(pc105)"     };
};
Run Code Online (Sandbox Code Playgroud)

arc*_*ale 20

使用终端模拟器通过 ssh 连接到 Mac OS X 时,我遇到了类似的问题。尽管我将 LANG 设置为de_DE.UTF-8我无法输入任何带有变音符号的字符。

我发现的解决方法是创建/编辑~/.inputrc (或编辑 中的以下几行/etc/inputrc):

set input-meta on
set output-meta on
set convert-meta off
Run Code Online (Sandbox Code Playgroud)

现在我可以输入变音符号了。我相信这通常适用于 xterms。


rub*_*o77 6

设置正确的语言环境

sudo dpkg-reconfigure locales
Run Code Online (Sandbox Code Playgroud)

在那里您可以选择de_DE.UTF-8作为您的设置。这解决了所有问题;)

信息:更改set convert-meta offin的值/etc/inputrc并不完全有效:
它也修复了这种情况,但仍有一些奇怪的地方:如果我输入,ö我会得到一个 ö,但似乎在 ö 前面有一个隐藏的字符:我可以删除至退格两个字符,虽然我只输入了一个 ö