Вот что произошло, когда я писал код на C в vim в терминале Ubuntu 16.04.
Каждый раз, когда я пытаюсь ввести правую скобку, окно терминала показывает мне '7'. Кроме того, при нажатии клавиши '7' вводится символ стрелки вниз (я думаю, это символ юникода).
Пример:
fprintf(stdout, "%s\n", argv[17);
Странно, но нажатие Shift-] приводит к '}', как и ожидалось, а другие цифровые клавиши показывают соответствующее число правильно.
Подумав, что это проблема в vim, я попробовал открыть файл в emacs и увидел то же самое.
А когда я попробовал скомпилировать файл с помощью gcc, вывод компилятора имел ту же странную проблему с кодировкой.
Я попытался подключиться по ssh к удаленному серверу, и произошло то же самое, так что я уверен, что проблема в том, как мой терминал отображает символы.
Что происходит и как мне это исправить?
Edit: Проблема решена благодаря совету использовать команду reset
. После перезапуска терминала все работает нормально. Я работал с двоичными данными, что, похоже, и стало причиной этой проблемы.
Благодаря ссылке, отправленной пользователем brndn2k, я смог решить вопрос.
я работал с двоичными данными, и это, должно быть, было преступником, как упомянуто в ссылке.
Используя эти reset
команда и перезапуск моих терминалов возвратили терминал кодированию обычного символа.