LinuxForum.Fans
Тема

Опять о mc и utf-8

Автор: eu22 12 сообщений 6873 просмотров
#145106

Здравствуйте!

Для root в mc стоит display_codepage = UTF-8 в putty тоже UTF-8, mc отображается корректно.
Но когда переключаюсь на другого пользователя появляются кривые символы вместо рамок, меняю кодировку на UTF-8 через меню или через ~/.mc/ini, перезапускаю mc и вижу display_codepage = ASCII и в меню и в конфиге, символы остаются.
Система Debian Squeeze. В чем может быть проблема?

Заранее спасибо!

#145114
eu22 написал:
Но когда переключаюсь на другого пользователя появляются кривые символы вместо рамок

переключайтесь командой su -, это наследование окружения. В т.ч. и локали.

#145149
drBatty написал:
[quote=eu22]Но когда переключаюсь на другого пользователя появляются кривые символы вместо рамок

переключайтесь командой su -, это наследование окружения. В т.ч. и локали.[/quote]

Спасибо.
Да, а как поставить локаль конкретному пользователю?

#145167
eu22 написал:
Да, а как поставить локаль конкретному пользователю?

наверное как и смотреть. locale ИМЯ_ЛОКАЛИ.
зачем это?

#145186
drBatty написал:
[quote=eu22]Да, а как поставить локаль конкретному пользователю?

наверное как и смотреть. locale ИМЯ_ЛОКАЛИ.
зачем это?[/quote]

Ну а как справиться с проблемой описанной в первом сообщении?
Локаль стоит en_US.UTF-8

#145191

удалить .mc
и пробывать

#145388
Kettler написал:
удалить .mc
и пробывать

Кофинг создается при запуске mc. Если сделать "LANG=en_US.UTF-8 mc" то все ок на один сеанс.

#145393
eu22 написал:
Если сделать "LANG=en_US.UTF-8 mc" то все ок на один сеанс.

ну пропишите это в ¬/.bash_login

#145423
drBatty написал:
[quote=eu22]Если сделать "LANG=en_US.UTF-8 mc" то все ок на один сеанс.

ну пропишите это в ¬/.bash_login[/quote]

~/.bash_login - нету
Добавил в ~/.bashrc - работает если сделать source ~/.bashrc, при реконнекте ситуация повторяется.

Решил проблему добавив в переменные сессии putty

LANG en_US.UTF-8

и в /etc/ssh/sshd_config

AcceptEnv LANG LC_*
.

Но может все таки, кто-то знает как поставить кодировку для пользователя не root?
Если не передавать переменную LANG через putty, то получается следующее:


username@host:~$ locale

LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

#145424

Вывод locale можно.

#145438

Вывод есть выше.

LANG=
LC_CTYPE="POSIX"
LC_NUMERIC="POSIX"
LC_TIME="POSIX"
LC_COLLATE="POSIX"
LC_MONETARY="POSIX"
LC_MESSAGES="POSIX"
LC_PAPER="POSIX"
LC_NAME="POSIX"
LC_ADDRESS="POSIX"
LC_TELEPHONE="POSIX"
LC_MEASUREMENT="POSIX"
LC_IDENTIFICATION="POSIX"
LC_ALL=

для root, su - все ок, стоит en_US.UTF-8

#145627
eu22 написал:
~/.bash_login - нету

дык сделайте. В некоторых ситуациях один выполняется, а иногда другой. Подробности в man login && man bash.

eu22 написал:
Но может все таки, кто-то знает как поставить кодировку для пользователя не root?

в слаке это прописано в /etc/profile.d/lang.sh, который вызвается из /etc/profile, при входе любого пользователя.

Войдите или зарегистрируйтесь, чтобы ответить.