Ошибка сбоя локали кодировки UTF-8 в консоли Linux

Как исправить ошибку сбоя локали кодировки UTF-8 в консоли Linux

Ошибка сбоя локали кодировки UTF-8 в консоли Linux возникает, когда переменная окружения LANG или LC_ALL не установлена на поддерживаемую локаль с кодировкой UTF-8. Исправить это можно через установку правильной локали в файле конфигурации или через команды консоли. Проблема решается за 3–5 минут.

Причины проблемы

  • Переменная окружения LANG установлена на локаль без UTF-8 (например, C или en_US.ISO8859-1)
  • Требуемая локаль с UTF-8 не сгенерирована в системе
  • Файл /etc/locale.gen не содержит нужную локаль
  • Переменные LC_ALL, LC_CTYPE или LC_MESSAGES переопределяют глобальные настройки
  • После переустановки системы или обновления локали конфигурация не была применена

Пошаговая инструкция

  1. Откройте консоль и выполните команду locale чтобы проверить текущие настройки локали.
  2. Если видите C или POSIX вместо en_US.UTF-8 (или другой нужной локали), переходите к следующему шагу.
  3. Выполните команду locale -a чтобы увидеть список доступных локалей.
  4. Если нужная локаль (например, ru_RU.UTF-8) отсутствует в списке, откройте файл /etc/locale.gen с правами администратора: sudo nano /etc/locale.gen
  5. Найдите строку с нужной локалью (например, # ru_RU.UTF-8 UTF-8) и удалите символ # в начале.
  6. Сохраните файл: нажмите Ctrl+O, затем Enter, потом Ctrl+X.
  7. Выполните команду sudo locale-gen чтобы сгенерировать локали.
  8. Установите локаль глобально: sudo update-locale LANG=ru_RU.UTF-8 (замените ru_RU на вашу локаль, например en_US).
  9. Выполните source /etc/default/locale чтобы применить изменения в текущей сессии.
  10. Проверьте результат командой locale — должны увидеть UTF-8 во всех параметрах.
  11. Перезагрузитесь: sudo reboot или выйдите из сессии и зайдите заново.

Часто задаваемые вопросы

Как быстро проверить текущую локаль без полного списка? Выполните echo $LANG — она выведет только значение переменной окружения.

Что делать, если строки в /etc/locale.gen закомментированы решёткой? Удалите символ # в начале строки с нужной локалью, сохраните файл и выполните sudo locale-gen.

Как установить UTF-8 только для текущей сессии консоли? Выполните export LANG=ru_RU.UTF-8 (замените на вашу локаль) — изменение будет действовать только до перезагрузки или закрытия терминала.

Похожие материалы

Смонтировать жесткий диск NTFS в Linux Mint
Настройка прав доступа к папке через команду chmod в терминал
Ошибка apt-get update при сбое репозиториев в Debian