Как сменить локаль в Debian или пишем кирилицей linux-логи

Я знаю что использовать русские буквы в логах Linux – это самый страшный грех для айтишника, но иногда это просто необходимость. Одна из таких необходимостей возникает при создании централизованного хранения log-файлов различных операционных систем. Microsoft всегда использовал в своих log`ах русский язык и поэтому если мы хотим получать log-файлы и от Windows-серверов, то стоит смириться, что в log`ах будет кирилица.

Для того, чтобы эти логи нормально отображались нам и нужно явно указать локаль на сервере.

Проблемы отображения кириллических символов в Linux не существует. Есть проблема у русской версии Windows. Весь мир и Linux в том числе, работает в кодировке UTF-8, когда русская версия Microsoft использует CP1251. Как сообщает нам сайт bitte.net.ua, такая ситуация сложилось исторически благодаря компании «Парус», которая взяла на себя обязательства по локализации всех операционных систем Windows. Выбрали они почему-то кодировку CP1251, которая используется до сих пор. Использование этой «неправильной» кодировки в наши дни обусловлено сохранением совместимости всех версий ОС.

Получается, что для того, чтобы Linux сервер нормально отображал русские буквы, нужно объяснить ему, что необходимо работать в той же кодировке, что и Windows.

Для того, чтобы управлять локалью в операционной системе Linux, необходим пакет locales, который должен быть у Вас установлен. В большинстве случаев пакет locales уже будет у Вас установлен, поэтому для проформы просто проверяем этот факт.

sudo apt-get install locales

Посмотреть установленную локаль можно командой:

locale

Для ручного указания кодировке в Debian нужно отредактировать конфигурационный файл /etc/locale.gen:

sudo nano /etc/locale.gen

Команду sudo можно не использовать, если Вы используете изначально права суперпользователя.

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

  • если хотим указать, чтобы сервер работал в UTF-8, раскомментирум:
    ru_RU.UTF-8 UTF-8
  • если хотим указать, чтобы сервер работал в CP1251, раскомментирум:
    ru_RU.CP1251 CP1251

Стоит обратить внимание, что первые 2 символа (в нашем примере это ru) говорят нам о языке локализации.

После этого переопределяем настройки locales командой:
notextile.

sudo locale-gen

Последним шагом нужно перелогиниться в операционной системе.

Комментарии:

  1. Андрей Зимин опубликовал комментарий 26 Ноябрь 2015, 20:51 #

    Попробую применить ваши методы, не знаю, что из этого выйдет, но просмотрим.

    | Ответить
Имя
e-mail
Сайт
Текст комментария: