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


13

环境:
我将Ubuntu 11.10和wmii 3.9用作GUI,将uxterm用作终端,使用bash作为外壳程序。硬件是具有Thinkergerman键盘布局的Lenovo ThinkPad W500(因此我需要变音符号)。我正在使用ibus进行日语输入。

现象:
当我在终端中键入键/字符时~什么也没有发生。如果按“ ”,则什么也没有发生,有时会出现历史记录中的命令。到目前为止,我在所有测试过的终端(gnome-terminal,xfce4-terminal,xterm)中的行为都是相同的。它可以在其他X应用程序(如铬浏览器,Skype或texteditors)中按需运行。^ö(arg: 6)äü

附加信息:

> 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)"     };
};

Answers:


17

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

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

set input-meta on
set output-meta on
set convert-meta off

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


谢谢,这解决了变音符号问题!但是我仍然无法键入〜,^或¨等字符。
jonas 2012年

它也为我解决了这个问题(在重新登录后),但仍然有些奇怪:如果键入,ö我会得到一个ö,但似乎也有一个隐藏字符:尽管我只键入了两个字符,但我可以删除两个字符一öLANG=de_DE.UTF-8在命令行中输入该命令可以进行该会话,但是在新的shell中消失了
rubo77 '16

@ rubo77添加export LANG=de_DE.UTF-8到您的~/.bashrc
naitsirch

5

使用设置正确的语言环境

sudo dpkg-reconfigure locales

在那里,您将选择de_DE.UTF-8设置。那解决了所有问题;)

信息:更改set convert-meta offin 的值/etc/inputrc不能完全起作用:
它也解决了这种问题,但是仍然有些奇怪:如果我键入,ö我会得到一个ö,但是在ö前面似乎有一个隐藏的字符:我可以删除Backspace两个字符,尽管我只键入了一个ö


感谢您的回答,很遗憾,我无法测试您的建议的结果,因为系统不再存在此问题。此外,我不明白,为什么将语言环境从de_CH.UTF-8更改为de_DE.UTF-8应该会改变这种情况。
乔纳斯(Jonas)

不确定,我以前有英文版式。但是也许ch布局也使用ö的死键?
rubo77'3

是的,确实如此,de_CH是瑞士-德国布局,它与德国布局非常相似。
jonas

1
我认为这个答案应该留给有类似问题的用户使用,但不要使用CH布局。我想解决方案是dpkg-reconfigure locales再次运行(而不是我使用的特定布局)
rubo77 '16

同意!我希望,我可以测试它是否可以解决问题。
jonas

-1

除了上述答案之外,还可能是您的语言环境未编译。在/ usr / share下有语言环境源文件,在/ usr / lib下有编译的语言环境文件。/ usr / lib下的那些文件可能已损坏或未编译,无法修复,您可以使用localedef实用程序来编译文件。或者在基于Debian的系统上dpkg-reconfigure。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.