LINUX.ORG.RU

Проблема с именами файлов кирилицей через ssh в mc

 ,


1

1

Всем привет. система debian stable. Очень странный вопрос, наверно все просто но не могу понять где проблема.
На одном из компов в mc если открыть ssh соединение то русскоязычные имена файлов и директорий будут цифрами. При этом сама кирилица нормально - можно открыть какой нибудь файлик почитать встроенной в mc смотрелкой - кирилица нормально. Можно создать файл с названием кирилицей - он создается нормально, но видно его как цифры. Этот косяк только в отображении панелей в mc. можно посмотреть ssh user@host ls -l /some/directory и все будет правильно.
Еще попробовал - если на удаленной машине собрать файлы например в *.tar.xz и зайти в него в этой панели то имена будут нормально.
Притащил все конфиги mc с заведомо работающей машины - ничего не поменялось. Проверил вывод locale - совпадает.
Где что надо поправить?

★★

Последнее исправление: griz (всего исправлений: 1)

Очень похоже на то, что кодировки на машинах различаются.

Попробуй запустить так:

env LC_ALL=ru_RU.UTF-8 mc

Если исправит — добавляй нужные кодировки где они там у вас в Linux добавляются. Переменную LC_ALL (и вообще переменные группы LC_*) не используй, пример выше — для теста!

mord0d ★★★★★
()
  1. На сервере в /etc/locale.gen раскомментируй все те же локали, что есть на клиенте, затем запусти sudo locale-gen.
  2. Убедись, что текущая локаль на сервере оканчивается на .UTF-8, а не что-то другое (сам язык при этом не важен, но локали должны быть, см. пункт выше).
  3. На сервере установи значение переменной $TERM в то же, что используется на клиенте (зависит от используемого на клиенте терминала).
CrX ★★★★★
()
Последнее исправление: CrX (всего исправлений: 3)
Ответ на: комментарий от CrX

На сервере установи значение переменной $TERM в то же, что используется на клиенте (зависит от используемого на клиенте терминала).

Пояснения по третьему пункту: (для @griz и тех кто не знает как это вообще работает) termcap/terminfo для конкретного эмулятора терминала (если используется нестандартный) может отсутствовать на целевой машине ("сервере"), для этого не обязательно устанавливать этот эмулятор терминала на удалённой машине, достаточно скопировать из клиента termcap/terminfo по пути, где он будет прочитан. Но и это не обязательно, иногда достаточно установить совместимый termcap/terminfo из имеющихся, или использовать xterm (или xterm-256color) в качестве fallback (может не сработать).

Также иногда вместо ssh стоит использовать env TERM=... ssh.
// У меня FreeBSD → Linux (Debian) без явного указания TERM мусорит в терминал.

mord0d ★★★★★
()

русские имена это зло (влом раскладку переключать) кроме имён книг и фильмов, а так по теме: у тебя переменные окружения обозначения локали слетели, как выше написали env LC_ALL=ru_RU.UTF-8 mc или

export LC_ALL=ru_RU.UTF-8
mc

s-warus ★★★★
()

А вот кстати внезапно оказалось что не на все сервера такое происходит. Проблема видимо касается не только клиента и его mc.

griz ★★
() автор топика