Приобрел недавно облачный виртуальный сервер в компании zomro и столкнулся с тем, что кодировка, предлагаемой к установке из образа, CentOS не соответствует кодировке принятой для этой операционной системы по-умолчанию UTF-8. Восстановим несправедливость.
Для начала проверим какая кодировка локали стоит в системе.
Проверить какая локаль сейчас установлена можно с помощью команды
locale
[su_spoiler title=»Вывод команды locale»]
LANG=ru_RU.UTF-8 LC_CTYPE="ru_RU.UTF-8" LC_NUMERIC="ru_RU.UTF-8" LC_TIME="ru_RU.UTF-8" LC_COLLATE="ru_RU.UTF-8" LC_MONETARY="ru_RU.UTF-8" LC_MESSAGES="ru_RU.UTF-8" LC_PAPER="ru_RU.UTF-8" LC_NAME="ru_RU.UTF-8" LC_ADDRESS="ru_RU.UTF-8" LC_TELEPHONE="ru_RU.UTF-8" LC_MEASUREMENT="ru_RU.UTF-8" LC_IDENTIFICATION="ru_RU.UTF-8" LC_ALL=
[/su_spoiler]
Это означает что кодировка у нас в консоли используется en_US.UTF-8. Если вывод будет выглядеть иначе, то нужно сменить локаль.
Для того чтобы проверить наличие готовых локалей в системе выполняем команду
locale -a | grep ru
[su_spoiler title=»Вывод команды locale -a | grep ru
«]
ru_RU ru_RU.iso88595 ru_RU.koi8r ru_RU.utf8 russian ru_UA ru_UA.koi8u ru_UA.utf8
[/su_spoiler]
Для случая с кодировкой UTF-8 необходимая локаль имеет вид ru_RU.utf8. Если такая строка есть в выводе команды то делаем следующее:
Создаем файл /etc/sysconfig/i18n:
nano /etc/sysconfig/i18n
После чего в файл пишем следующие строки:
LANG="ru_RU.UTF-8" SUPPORTED="ru_RU.UTF-8:ru_RU:ru" SYSFONT="latarcyrheb-sun16"
После этих изменений сохраняем файл, выходим из консоли и заходим в нее опять. После этих действий мы наблюдаем корректно отображаемый русский шрифт в локали.