Какая кодировка в ubuntu

Обновлено: 04.07.2024

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

Для тех, кому лень читать всю статью до конца — чаще всего для локализации консоли достаточно повторно сконфигурировать пакет locales :

Сначала будут созданы нужные локали (их выбрать на первом экране), потом установлена локаль по умолчанию (ее выбрать на втором экране).

Текущие настройки языка

Посмотрим информацию о текущем языковом окружении:

Список доступных локалей

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

Есть только системная локаль C.UTF-8 , которая присутствует всегда. А нам надо добавить еще две локали — en_US.UTF-8 и ru_RU.UTF-8 .

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

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

Устанавливаем нужные локали — en_US.UTF-8 и ru_RU.UTF-8 :

Второй способ установить локали — расскомментровать нужные строки в файле /etc/locale.gen

И просто выполнить команду locale-gen без указания локалей:

Подробная информация о локалях

Более подробную информацию об установленных в системе локалях можно посмотреть так:

Часть локалей размещена в архиве /usr/lib/locale/locale-archive , а часть — в директориях внутри /usr/lib/locale/ .

Локаль по-умолчанию

Хорошо, нужные локали у нас теперь есть, осталось только задать локаль по умолчанию:

Эта команда запишет в файл /etc/default/locale строку:

После этого надо будет перезайти в систему. И проверяем информацию о языковом окружении:

Теперь все правильно, так что запишем эту информацию в файл /etc/default/locale :

Быстрая локализация

До сих пор мы все делали ручками, но если лень — можно просто повторно сконфигурировать пакет locales . Сначала будут созданы нужные локали (их нужно выбрать на первом экране), потом установлена локаль по умолчанию (ее нужно выбрать на втором экране).



Удалить лишние локали

После установки (генерации) локали, она помещается в архив /usr/lib/locale/locale-archive . Файл архива — это файл, отображаемый в память, который содержит все локали системы; он используется всеми локализованными программами. Посмотреть список локалей в архиве можно с помощью команды:

Удалить заданную локаль из файла архива:

Обратите внимание на название локали — ru_UA.utf8 , а не ru_UA.UTF-8 . Если неправильно указать локаль — она не будет удалена из архива:

В случае, если утилита locale-gen была вызвана с опцией --no-archive , надо удалить соответствующую директорию в /usr/lib/locale :

Переводы для системных программ

Локализация для текущей сессии

Достаточно временно установить переменную окружения LANG в текущей сессии терминала:

Или даже так — передать переменную LANG конкретной программе:

Файлы конфигурации шрифта и клавиатуры

Настройки можно найти в файлах конфигурации /etc/default/console-setup и /etc/default/keyboard :

Это системные настройки, пользователь может создать свои в файлах

Настройка шрифта и клавиатуры

Чтобы сформировать файлы конфигурации /etc/default/console-setup и /etc/default/keyboard можно использовать команды:



После того, как файлы конфигурации будут сформированы, нужно выполнить команду setupcon без аргументов или перезагрузить систему.

В этой инструкции мы опишем что такое кодировка символов и рассмотрим несколько примеров конвертации файлов из одной кодировки в другую с использованием инструмента командной строки. Наконец, мы узнаем, как на 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 для указания кодировки, в которую должна быть преобразована строка. Т.е. используется команда следующего вида:

thumb

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

Кракозя́бры (крякозя́бры) — жаргонизм, обозначающий бессмысленный с точки зрения читателя набор символов, чаще всего получаемый на компьютере в результате неправильного перекодирования осмысленного текста. В единственном числе — вообще любой компьютерный символ, для которого в русском языке нет общеизвестного названия, например, значок @. Чаще всего кракозябры образуются на выводе программ по причине неправильно настроенной кодировки символов, а также из-за использования неподходящего шрифта.

Пара примеров из того же Wiki:

А теперь перейдём к решению.

Для редактирования отображения симвлов в консоли существует специальный конфигуратор который запускается такой командой:

Далее все действия производятся в консольном графическом конфигураторе простым выбором необходимых пунктов с помощью кнопок вверх, вниз и “Enter”.

Выбираем кодировку - UTF-8 :

Кракозябры в консоли Ubuntu/Debian

Выбираем таблицу символов - Кирилица - славянские языки (5 пункт):

Кракозябры в консоли Ubuntu/Debian

Выбираем шрифт - Fixed или TerminusBold :

Кракозябры в консоли Ubuntu/Debian

Выбираем размер шрифта - 8x16 :

Кракозябры в консоли Ubuntu/Debian

Для того, чтобы наша настройка не слетела после перезагрузки нужно проделать следующее:

В открывшемся текстовом файле находим exit 0 и над этой строкой пишем:

Если эта статья помогла вам, пожалуйста, оставьте комментарий

Спасибо за прочтение!

Buy me a coffee!

Kак научить Ubuntu правильно отображать кодировку windows?

Отредактировано pefon (02-04-2011 22:10:08)

"Сначала они вас игнорируют, потом смеются над вами, потом борются с вами, а потом вы побеждаете" Махатма Ганди.

Хм. Последний раз подобное видел кажется в Убунту 7.ХХ какой то!
Насколько я помню, как это исправлялось.
Для начала проверить, в консоли:

Если там не будет ru_RU.cp1251 то:

Вместо gedit любой текстовик, откроется блокнот и там снизу (если нет) добавить:

Сохранить и после выполнить:

Должно снизу вылезти такое:

Затем проверить снова:

Должно быть примерно так:

Если ru_RU.cp1251 есть то в Nautilus, по идее, должно всё корректно отображаться.

smile

И ещё. Есть такой проект Nautilus Filename Repairer
По скину думаю будет понятно зачем он!

usage-ru.jpg

"Сначала они вас игнорируют, потом смеются над вами, потом борются с вами, а потом вы побеждаете" Махатма Ганди.

Решение проблемы с кодировкой в rar и zip-архивах для Ubuntu:

Или просто добавить PPA-репозитарий:

и установить/обновить пакеты p7zip-full p7zip p7zip-rar.

Денис Гость zilnet Гость

locale-gen.jpg

Xubuntu 12.10

Вот что получилось у меня.

Вот что получилось у меня.

а sudo твоё где? Для таких команд и предназначено

In Tux We Trust

а sudo твоё где?

big_smile

Мда. вот что значит засиживаться допоздна.

Вроде всё получилось:

Отредактировано Teocally (05-04-2013 00:37:32)

Suid Гость

wink

Спасибо Огромное

fseee Гость

А если всё равно кодировки не появляются? (в locale -a после всех изменений только UTF-8 на всех языках)

fseee Гость

А если всё равно кодировки не появляются? (в locale -a после всех изменений только UTF-8 на всех языках)

fseee Гость fseee Гость

sudo apt-get install cuneiform yagf
больше эту проблему по моему никак не решить, то в одной проге кракозябры то в другой.

то в одной проге кракозябры то в другой.

В интерфейсе кракозябры? Давно уже не видел.
Может попробовать удалить все неиспользуемые локали и шрифты:

Одна из причин, почему я не ставлю Unity,которую не понятно за что любят - это то, что там по неведомой мне причине постоянно на разных машинах с завидными регулярностью и упорством слетает русский язык. И вместно него буржуйский.
Против этого даже passwd не помогает, так как перед тем, как ввести новый пароль с тебя root затребует старый, а его ты не введешь из-за локали и плевать, что можно настроить - после перезагрузки та же фигня. При чем англоязычное все - от пароля до папок в username. Добавить сюда то убожество, в которое превратили Gnome 2 - можно смело идти на др. дистрибутив.

Yes, we are Linux Community.Yes, we can all

А меня Unity полностью устраивает. Удобно, никакой русский нигде не слетает. И не слетал ни разу.

на разных машинах с завидными регулярностью и упорством слетает русский язык

В Арче делал так:

И всё, кроме русской все локали ёкипс, да и почти 400Мб на корне освободилось!
А вам надо в графической утилите "Язык системы" выставить русский вверх, если язык не один (а лучше, для верности, вообще все другие удалить) и нажать "Применить для всей системы" и всё будет как надо! Испытано многократно!

А меня Unity полностью устраивает. Удобно, никакой русский нигде не слетает. И не слетал ни разу.

Ну а я вот к Unity и не обвыкся, да и шибко не пытался собственно.
Мне оно и не надо, мне и так хорошо, менять ничего и не хочется!

на разных машинах с завидными регулярностью и упорством слетает русский язык

В Арче делал так:

И всё, кроме русской все локали ёкипс, да и почти 400Мб на корне освободилось!
А вам надо в графической утилите "Язык системы" выставить русский вверх, если язык не один (а лучше, для верности, вообще все другие удалить) и нажать "Применить для всей системы" и всё будет как надо! Испытано многократно!

А меня Unity полностью устраивает. Удобно, никакой русский нигде не слетает. И не слетал ни разу.

Ну а я вот к Unity и не обвыкся, да и шибко не пытался собственно.
Мне оно и не надо, мне и так хорошо, менять ничего и не хочется!

smile

Спасибо, конечно, за подсказку, но я и сам язык восстанавливал, и уж коли бы приперло меня на Unity подсесть, так наверное уже бы давно сидел. Однако, памятуя о том, как разрабы жестко похоронили любимый мною в ту пору Gnome 2, я был просто вне себя и не мог засранцам этого простить. Сейчас, конечно, я так не фанатею даже от KDE, хотя они кстати после весрии 4.9.5. стали круче пасхальных яиц, и там есть на что посмотреть. Отказался же я от них однако, из-за невъеб---ых зависимостей и отсуствие кое какого софта под kDE. Хотя такого набралось не много, да и не критично )

Yes, we are Linux Community.Yes, we can all

Ну а я вот к Unity и не обвыкся, да и шибко не пытался собственно.
Мне оно и не надо, мне и так хорошо, менять ничего и не хочется!

smile

Опробовав один раз сию приблуду, до сих пор пребываю в состоянии лёгкого шока.
Как можно сделать рабочий стол. ещё более макоподобный чем сам MAC OS?
Явно какие-то очень талантливые люди. талантливые и альтернативно одарённые!

З.Ы. Сам переполз на МАТЕ.

Отказался же я от них однако, из-за невъеб---ых зависимостей и отсуствие кое какого софта под kDE

Что то про софт я не понял, а зависимости. Так места на диске не жалко, да и у KDE их не больше чем у Gnome. У меня вот они стоят только ради KTorrent, ну раньше ещё и для K3B. Как то и не заморачиваюсь по этому поводу, мне они не мешают, ну и ладненько.

З.Ы. Сам переполз на МАТЕ.

smile

А я что то в полноценных ДЕ разочаровался, обвесил Openbox"а кусочками МАТЕ, LXDE и независимыми утилитками, обустроил себе комфортное гнёздышко и кайфую! ))

smile

А я что то в полноценных ДЕ разочаровался, обвесил Openbox"а кусочками МАТЕ, LXDE и независимыми утилитками, обустроил себе комфортное гнёздышко и кайфую! ))

Похоже, что я буду следующим на очереди.
Опять самозатеменение экрана доставлять начало. Настроил caffeine - вначале нормально работало, сейчас "как обычно".
А ведь всего-то второй плейер доустановил (на обложки альбомов глянуть захотелось)
Пока что решаю проблеу, перелогиниваясь в стандартное окружение Runtu Lite (тот же Openbox с "кусочками").

Отредактировано Teocally (27-10-2013 22:31:35)

Как можно сделать рабочий стол. ещё более макоподобный чем сам MAC OS?

Хотя я и не первый год использую Линукс. Далеко не первый. С начала 2000-х. И перепробовал всё, что только можно придумать, даже тайловые ВМ. И те, про которые уже все давно забыли. Но. мне нравится Unity. И то, что элементы управления окон слева. И то, что заголовок окна при разворачивании интегрируется с верхней панелью, и "док" слева. Хотя, сколько не пробовал доки, ни один не прижился, как я не старался. А тут всё пробумано и удобно. МакОС не вставил в своё время. И да, хоткеев в Unity мне более чем хватает. Это не на столько мышевозная среда, как о ней думают. Много чего с клавиатуры делаю. Тут даже терминал по хоткею вызывается из коробки. И развернуть его на весь экран просто тоже с клавиатуры. И новую вкладку создать. И перемещение между ними. И между раб столами. И между окнами - разнотипными и однотипными. Не знаю, мне очень удобно.

Читайте также: