Меню Рубрики

Linux кодировка по умолчанию

Linux: Смена Языка и Кодировки Системы — Locale

Локаль (locale или локализация) в Linux определяет какой язык и какой набор символов (кодировку), пользователь видит в терминале.

Прочитав эту статью вы поймете, как узнать и изменить язык и кодировку системы из командной строки в Linux.

Я покажу как проверить текущие настройки языка и кодировки и узнать список всех доступных локалей.

Вы узнаете, как временно сменить язык и кодировку для текущей сессии или установить их постоянно, как для отдельного пользователя, так и для всех пользователей (сменить системную локаль по умолчанию).

Дельный Совет: Узнайте как определить и изменить кодировку файла из командной строки в Linux! Лучшее решение для конвертации текстовых файлов между различными кодировками! Читать далее →

Настройки Языка и Кодировки

Выполните команду locale , чтобы получить информацию о текущем языковом окружении:

Чтобы узнать список всех установленных языков и кодировок, выполните:

Локаль задается в следующем формате:

ЯЗЫК Код языка по стандарту ISO 639
ТЕРРИТОРИЯ Код страны по стандарту ISO 3166
КОДИРОВКА Набор символов или идентификатор кодировки текста, как ISO-8859-1 или UTF-8

Например, локаль для австралийского английского с кодировкой UTF-8 называется: en_AU.UTF-8

Добавить Новую Локаль

Новая локаль: Прежде чем локаль станет доступной для использования, ее необходимо установить (сгенерировать).

Если вы не нашли необходимый язык или кодировку в списке установленных локалей, вы можете сделать поиск по всем поддерживаемым локалям и установить ту, которая вам нужно.

Ubuntu-18.04

Поддерживаемые релизы: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.

Список всех поддерживаемых (доступных для установки) локалей:

Найдите необходимую локаль, например:

Установите ее, выполнив:

Теперь она должна появиться в списке установленных локалей:

Ubuntu-14.04

Поддерживаемые релизы: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.

Список всех поддерживаемых (доступных для установки) локалей:

Найдите необходимую локаль, например:

Установите ее, выполнив:

Теперь она должна появиться в списке установленных локалей:

CentOS-7, CentOS-6

Список всех поддерживаемых (доступных для установки) локалей:

Найдите необходимую локаль, например:

Сменить Язык и Кодировку Временно

Чтобы изменить язык и кодировку текущей сессии, необходимо просто переназначить эту переменную.

Ниже приведены примеры изменения локали для некоторых распространенный языков.

Установите значение переменной LANG , как показано на примерах, чтобы изменить язык и кодировку текущий сессии:

Установить английскую локаль:

Установить русскую локаль:

Установить французскую локаль:

Установить немецкую локаль:

Установить индийскую локаль:

Сменить Язык и Кодировку Перманентно

Для этого установите необходимое значение переменной LANG в пользовательском Bash профиле и нужный язык вместе с кодировкой будут автоматически подгружаться при каждом входе в систему.

Добавьте следующую строку в файл

/.profile , чтобы для текущего пользователя локаль en_US.utf8 стала локалью по умолчанию:

Изменение вступит в силу при следующем входе в систему, но вы можете это ускорить, если выполните одну из приведенных ниже команд, в зависимости от того, в каком файле вы прописали экспорт переменной LANG :

Локаль Системы По Умолчанию

Дельный Совет: Создайте потрясающий ASCII баннер из командной строки в Linux и вставьте его в предупреждающее сообщение, которое будет появляться при подключении по SSH! Читать далее →

Выполните следующие действия для смены системной локали по умолчанию (для всех пользователей).

Ubuntu-18.04

Поддерживаемые релизы: Ubuntu-15.04, 15.10, 16.04, 16.10, 18.04.

Ubuntu-14.04

Поддерживаемые релизы: Ubuntu-9.10, 10.04, 10.10, 11.04, 11.10, 12.04, 12.10, 13.04, 13.10, 14.04, 14.10.

Откройте файл с настройками локали по умолчанию:

Переопределите значение переменной LANG :

CentOS-7

CentOS-6

Откройте файл с настройками локали по умолчанию:

Переопределите значение переменной LANG :

Необходима перезагрузка: Изменения системных настроек вступит в силу только после перезагрузки.

Источник

Как определить кодировку файла или строки. Как конвертировать файлы в кодировку UTF-8 в Linux

В этой инструкции мы опишем что такое кодировка символов и рассмотрим несколько примеров конвертации файлов из одной кодировки в другую с использованием инструмента командной строки. Наконец, мы узнаем, как на Linux конвертировать несколько файлов из одного набора символов (charset) в UTF-8 кодировку.

Возможно, вы уже в курсе, что компьютер не понимает и не сохраняет буквы, числа или что-то ещё чем обычно оперируют люди. Компьютер работает с битами. Бит имеет только два возможных значения: 0 или 1, «истина» или «ложь», «да» или «нет». Все другие вещи, вроде букв, цифр, изображений должны быть представлены в битах, чтобы компьютер мог их обрабатывать.

Говоря простыми словами, кодировка символов – это способ информирования компьютера о том, как интерпретировать исходные нули и единицы в реальные символы, где символ представлен набором чисел. Когда мы печатаем текст в файле, слова и предложения, которые мы формируем, готовятся из разных символов, а символы упорядочиваются в кодировку.

Имеются различные схемы кодирования, среди них такие как ASCII, ANSI, Unicode. Ниже пример ASCII кодировки.

Программы для определения кодировки в Linux

Команда file -i показывает неверную кодировку

Чтобы узнать кодировку файла используется команда file с флагами -i или –mime, которые включают вывод строки с типом MIME. Пример:

Команда file показывает кодировки, но для одного из моих файлов она неверна. Рассмотрим ещё одну альтернативу.

Программа enca для определения кодировки файла

Утилита enca определяет кодировку текстовых файлов и, если нужно, конвертирует их.

Установим программу enca:

В этот раз для обоих файлов кодировка определена верно.

Запуск команды без опции выводит что-то вроде:

Это удобно для чтения людьми. Для использования вывода программы в скриптах есть опция -e, она выводит только универсальное имя, используемое в enca:

Если вам нужно имя, которое используется для названия кодировок в iconv, то для этого воспользуйтесь опцией -i:

Для вывода предпочитаемого MIME имени кодировки используется опция -m:

Для правильного определения кодировки программе enca нужно знать язык файла. Она получает эти данные от локали. Получается, если локаль вашей системы отличается от языка документа, то программа не сможет определить кодировку.

Язык документа можно явно указать опцией -L:

Чтобы узнать список доступных языков наберите:

Как определить кодировку строки

Для определения, в какой кодировке строка, используйте одну из следующих конструкций:

Вместо СТРОКА_ДЛЯ_ПРОВЕРКИ впишите строку, для которой нужно узнать кодировку. Если у вас строка не на русском языке, то откорректируйте значение опции -L.

Если возникло сообщение об ошибке:

то попробуйте установить chardet из стандартных репозиториев.

Если chardet не найдена в репозиториях, то поищите программу uchardet, затем установите и используйте её.

Изменение кодировки в Linux

Использование команды iconv

В Linux для конвертации текста из одной кодировки в другую используется команда iconv.

Синтаксис использования iconv имеет следующий вид:

Где -f или –from-code означает кодировку исходного файла -t или –to-encoding указывают кодировку нового файла. Флаг -o является необязательным, если его нет, то содержимое документа в новой кодировке будет показано в стандартном выводе.

Чтобы вывести список всех кодировок, запустите команду:

Конвертирование файлов из windows-1251 в UTF-8 кодировку

Далее мы научимся, как конвертировать файлы из одной схемы кодирования (кодировки) в другую. В качестве примера наша команда будет конвертировать из windows-1251 (которая также называется CP1251) в UTF-8 кодировку.

Допустим, у нас есть файл mypoem_draft.txt его содержимое выводится как

Мы начнём с проверки кодировки символов в файле, просмотрим содержимое файла, выполним конвертирование и просмотрим содержимое файла ещё раз.

Примечание: если к кодировке, в который мы конвертируем файл добавить строку //IGNORE, то символы, которые невозможно конвертировать, будут отбрасываться и после конвертации показана ошибка.

Если к конечной кодировке добавляется строка //TRANSLIT, конвертируемые символы при необходимости и возможности будут транслитерированы. Это означает, когда символ не может быть представлен в целевом наборе символов, он может быть заменён одним или несколькими выглядящими похоже символами. Символы, которые вне целевого набора символов и не могут быть транслитерированы, в выводе заменяются знаком вопроса (?).

Изменение кодировки программой enca

Программа enca не только умеет определять кодировку, но и может конвертировать текстовые файлы в другую кодировку. Особенностью программы является то, что она не создаёт новый файл, а изменяет кодировку в исходном. Желаемую кодировку нужно указать после ключа -x:

Конвертация строки в правильную кодировку

Команда iconv может конвертировать строки в нужную кодировку. Для этого строка передаётся по стандартному вводу. Достаточно использовать только опцию -f для указания кодировки, в которую должна быть преобразована строка. Т.е. используется команда следующего вида:

Также для изменения кодировки применяются программы:

  • piconv
  • recode
  • enconv (другое название enca)

Источник

Популярные записи


Adblock
detector