В терминале гнома, а также в xfce4-терминале, когда я изменяю его кодировку символов от стандартного UTF-8 (с 2 байтами для специальных символов) к латинским ISO 8859-15 (всегда 1 байт), происходит следующее:
В то время как вывод латинского ISO закодированного текста хорошо работает, например:
cat textfile-iso-latin.txt
Однако вход не работает как ожидалось. Когда я ввожу специальный символ (как Умляут, Sonderzeichen, äöü) с клавиатурой в том же самом терминале, я должен нажать клавишу на клавиатуре дважды, чтобы заставить его отобразиться.
Находится клавиатура все еще в режиме UTF-8, где такие специальные символы берут два байта? Как я изменил бы это поведение, чтобы заставить это отклонение исчезнуть?
Спасибо.
Самый легкий способ получить латинский ISO закодированный ввод и вывод в моей оболочке удара, работающей в полной среде UTF-8 (как обычно, с Ubuntu), состоит в том, чтобы использовать обходное решение, которое было упомянуто в связанном, но не идентичном вопросе здесь: "Кодирование переключателя терминала с командой"
Когда в моем xfce-терминале UTF-8 или терминале гнома я запускаю свои старые латинские ISO закодированные программы как это:
luit -encoding iso-8859-15 gawk -f script.awk
… затем luit инструмент преобразовывает латинский ISO закодированный ввод и вывод моей программы (сценарий Awk в этом случае) к UTF-8 закодировал терминал.
Это обходное решение хорошо работает (до сих пор).