Терминал показывает искаженные символы с теми же настройками, что и другой терминал, отображающий правильные символы

У меня есть vim setup с NerdTree на удаленной машине. У меня есть две локальные машины. Когда я передаю ssh на удаленный компьютер с одной из локальных машин (скажем, A), он отображает все символы в NerdTree правильно. Однако, когда я ssh от другой локальной машины (скажем B) до удаленной машины, эти символы отображаются как некоторые искаженные символы. Я попытался выполнить поиск по этому вопросу и попробовал различные локали и кодировки, которые я мог найти. Ниже приведены настройки двух локальных машин и удаленной машины.

Локальная машина A:

$ stty speed 38400 baud; line = 0; eol = M-^?; eol2 = M-^?; swtch = M-^?; ixany iutf8 $ echo $LANG en_US.UTF-8 $ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

Локальная машина B:

 $ stty speed 38400 baud; line = 0; eol = M-^?; eol2 = M-^?; swtch = M-^?; ixany iutf8 $ echo $LANG en_US.UTF-8 $ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

Настройки на локальных машинах выглядят одинаково. Оба они запускают ОС OS в стиле CentOS. Оба терминала – это терминалы Gnome, предназначенные для использования кодировки символов UTF-8. Единственное различие, которое я вижу, это машина A использует версию 2.16.0 с шрифтом Courier, а машина B использует версию 2.31.3 с шрифтом monospace. Таким образом, машина B фактически использует более новую версию.

Удаленная машина:

 λ echo $LANG en_US.UTF-8 λ stty speed 38400 baud; line = 0; eol = M-^?; eol2 = M-^?; -brkint ixany λ locale LANG=en_US.UTF-8 LC_CTYPE="en_US.UTF-8" LC_NUMERIC="en_US.UTF-8" LC_TIME="en_US.UTF-8" LC_COLLATE="en_US.UTF-8" LC_MONETARY="en_US.UTF-8" LC_MESSAGES="en_US.UTF-8" LC_PAPER="en_US.UTF-8" LC_NAME="en_US.UTF-8" LC_ADDRESS="en_US.UTF-8" LC_TELEPHONE="en_US.UTF-8" LC_MEASUREMENT="en_US.UTF-8" LC_IDENTIFICATION="en_US.UTF-8" LC_ALL= 

λ который является моим $PS1 на удаленном компьютере, отображается правильно на обоих терминалах.

Как я исхожу отсюда? Имеются ли шрифты, установленные на локальных компьютерах? благодаря

  • Измените раскладку клавиатуры, чтобы добавить греческие клавиши, когда AltGr + буква в консоли
  • Запустите getty на последовательном порту при запуске на RHEL
  • Изменение разрешения TTY на Fedora
  • Как запретить ядро ​​или любые широковещательные сообщения наводнения TTY?
  • Что происходит при нажатии Ctrl + Alt + F <Num>?
  • Разница между tty и ttyS и оч и vcsa?
  • Разделение ноутбука на 2 консоли
  • Как обмен данными терминалом и оболочкой?
  • One Solution collect form web for “Терминал показывает искаженные символы с теми же настройками, что и другой терминал, отображающий правильные символы”

    Я понял это. Это похоже на проблему с шрифтом. Как только я установил шрифты с машины A на машину B, он начал работать нормально.

    Чтобы установить шрифты, я скопировал все из /usr/share/fonts из машины A в машину B, а затем запустил fc-cache /usr/share/fonts как описано здесь.

    Linux и Unix - лучшая ОС в мире.