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

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

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

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

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

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

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

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

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

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

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

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

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

Если этот пост помог вам, и вы хотели бы показать свою поддержку, подумайте о том, чтобы заправить будущие посты, купив мне чашку кофе!

Источник

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

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

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

Для того, чтобы эти логи нормально отображались нам и нужно явно указать locale в Debian, Ubuntu или какой Linux-дистрибутив Вы используете.

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

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

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

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

Команду sudo не нужна, если Вы зашли как суперпользователь. Это относится к Linux Mint и Ubuntu, так как Debian ничего не знает о команде sudo.

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

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

Команда locale-gen позволяет запустить скрипт /etc/locale.gen и перечитывает все кодировки для консоли.

Чтобы увидеть кириллицу в консоли Linux, остается только перелогиниться.

Комментарии

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

Источник

Как я боролся с кодировками в консоли

В очередной раз запустив в Windows свой скрипт-информер для СамИздат-а и увидев в консоли «загадочные символы» я сказал себе: «Да уже сделай, наконец, себе нормальный кросс-платформенный логгинг!»

Об этом, и о том, как раскрасить вывод лога наподобие Django-вского в Win32 я попробую рассказать под хабра-катом (Всё ниженаписанное применимо к Python 2.x ветке)

Задача первая. Корректный вывод текста в консоль
Симптомы

До тех пор, пока мы не вносим каких-либо «поправок» в проинициализировавшуюся систему ввода-вывода и используем только оператор print с unicode строками, всё идёт более-менее нормально вне зависимости от ОС.

«Чудеса» начинаются дальше — если мы поменяли какие-либо кодировки (см. чуть дальше) или воспользовались модулем logging для вывода на экран. Вроде бы настроив ожидаемое поведение в Linux, в Windows получаешь «мусор» в utf-8. Начинаешь править под Win — вылезает 1251 в консоли…

Теоретический экскурс
Ищем решение

Очевидно, чтобы избавиться от всех этих проблем, надо как-то привести их к единообразию.
И вот тут начинается самое интересное:

Кроме того, как замечательно видно из примера, если в linux у нас везде utf-8, то в Windows — две разных кодировки — так называемая ANSI, она же cp1251, используемая для графической части и OEM, она же cp866, для вывода текста в консоли. OEM кодировка пришла к нам со времён DOS-а и, теоретически, может быть также перенастроена специальными командами, но на практике никто этого давно не делает.

До недавнего времени я пользовался распространённым способом исправить эту неприятность:

… и собрать всё вместе:

Задача вторая. Раскрашиваем вывод

Попробовав несколько из них, я, в итоге, воспользовался простейшим наследником StreamHandler, приведённом в одном из комментов на Stack Overflow и пока вполне доволен:

Однако, в Windows всё это работать, разумеется, отказалось. И если раньше можно было «включить» поддержку ansi-кодов в консоли добавлением «магического» ansi.dll из проекта symfony куда-то в недра системных папок винды, то, начиная (кажется) с Windows 7 данная возможность окончательно «выпилена» из системы. Да и заставлять юзера копировать какую-то dll в системную папку тоже как-то «не кошерно».

Снова обращаемся к гуглу и, снова, получаем несколько вариантов решения. Все варианты так или иначе сводятся к подмене вывода ANSI escape-последовательностей вызовом WinAPI для управления атрибутами консоли.

Побродив некоторое время по ссылкам, набрёл на проект colorama. Он как-то понравился мне больше остального. К плюсам именно этого проекта ст́оит отнести, что подменяется весь консольный вывод — можно выводить раскрашенный текст простым print u»\x1b[31;40mЧто-то красное на чёрном\x1b[0m» если вдруг захочется поизвращаться.

Сразу замечу, что текущая версия 0.1.18 содержит досадный баг, ломающий вывод unicode строк. Но простейшее решение я привёл там же при создании issue.

Собственно осталось объединить оба пожелания и начать пользоваться вместо традиционных «костылей»:

Дальше в своём проекте, в запускаемом файле пользуемся:

На этом всё. Из потенциальных доработок осталось проверить работоспособность под win64 python и, возможно, добаботать ColoredHandler чтобы проверял себя на isatty, как в более сложных примерах на том же StackOverflow.

Источник

Записки IT специалиста

Технический блог специалистов ООО»Интерфейс»

Настройка языка и региональных стандартов в Ubuntu Server/Debian

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксВ наших материалах тема региональных настроек Linux-систем ранее почти не поднималась. Подразумевалось, что система устанавливается читателями самостоятельно и все эти вопросы уже решены на стадии установки. Но бывают ситуации, когда нужно работать с уже готовой системой, например, VPS у зарубежного провайдера или в облачных системах типа Amazon или Azure. В этом случае появляется необходимость настроить систему для использования родного языка и привычных региональных настроек.

Это, в первую очередь, поддержка символов национального алфавита, кодовых страниц и раскладок клавиатуры, форматов чисел, а также настроек даты и времени. Если данные настройки не выполнить или выполнить неправильно, то имена файлов и содержимое документов с использованием символов отличных от стандартного латинского алфавита могут быть искажены или испорчены. Также масса проблем может возникнуть в дальнейшем, например, при переходе на локализованную систему, когда имена уже существующих файлов или ссылок на них могут оказаться неверными или вовсе недействительными.

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

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксПри этом сам скрипт, в данном случае CMS, функционирует нормально и при скачивании с сайта файлы имеют нормальные имена на кириллице, но с ними практически невозможно работать на сервере, так как непонятно, что это за файлы (вместо имен кубики), и нет возможности скачать их на Windows-систему. Переименовать файлы также нет возможности, так как сразу получим массу битых ссылок по всему сайту.

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

Debian

Для правильного отображения символов национальных алфавитов в определенной кодировке в Linux-системах предназначены локали (locales), узнать какие локали уже установлены в системе можно командой:

Обычно установлена и используется английская локаль en_US.utf8, однако, если вы, например, приобрели VPS в Германии, может присутствовать только национальная локаль, в этом случае, кроме русской, также рекомендуется установить английскую локаль.

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксДля генерации и настройки локалей используйте команду:

Откроется псевдографическая утилита, которая предложит выбрать используемые локали, добавляем ru_RU.utf8

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксЗатем укажите используемую по умолчанию локаль, тем самым установив язык системы:

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксБольшинство «инструкций» в интернете на этом заканчиваются, но установить локаль недостаточно, нужно еще настроить консоль, т.е. ту среду ввода-вывода с которой вы взаимодействуете. Иначе вы увидите примерно такую картину:

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксДля настройки консоли запустите следующую утилиту:

Прежде всего зададим кодировку консоли, в современном Linux это UTF-8.

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксЗатем используемые наборы символов, нам нужен комбинированный набор Latin; Slavic Cyrillic; Greek.

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксИ используемый шрифт, здесь посоветовать что-то однозначно нельзя и следует исходить из личных предпочтений, в любом случае выбор можно всегда изменить, запустив утилиту повторно.

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксНиже, чтобы облегчить вам выбор, представлены образцы шрифтов:

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксОстальные настройки, вроде размера шрифта и т.п. не представляют сложности и могут быть оставлены по умолчанию или выставлены в соответствии с собственными предпочтениями. Теперь можно выйти из системы и войти повторно или перезагрузить ее. После этого основным языком системы будет русский и символы кириллицы будут отображаться корректно.

Следующим шагом следует настроить клавиатуру:

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

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксТак как система изначально была установлена с локалью en_US, то нам предлагаются американские раскладки, выбираем Другая.

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксЗатем выбираем сочетание клавиш для переключения раскладок и отвечаем еще на ряд вопросов, отвечать на который можете по своему усмотрению. Советуем не спешить, там есть интересные возможности, например, клавиша временного переключения между раскладками:

И устанавливаем текущий часовой пояс, после чего система автоматически переведет часы.

Ubuntu Server

В Ubuntu Server команда dpkg-reconfigure locales не имеет псевдографического интерфейса и при запуске настраивает уже сгенерированные локали. Поэтому придется нужные настройки выполнить вручную, прежде всего сгенерируем русскую локаль (здесь и далее обращаем внимание на регистр команд):

Затем зададим локаль по умолчанию:

После чего выполним их настройку:

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксСледующим шагом будет настройка консоли:

Здесь все настройки аналогичны Debian, выбираем кодировку, набор символов и настраиваем шрифты.

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

Теперь можно выйти и повторно войти в систему (или перезагрузиться), чтобы продолжить дальнейшую настройку на русском языке. Для полноценной локализации потребуется настроить клавиатуру:

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

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линуксВременные зоны также настраиваются аналогично командой:

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

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

Помогла статья? Поддержи автора и новые статьи будут выходить чаще:

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

Или подпишись на наш Телеграм-канал: как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

Источник

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

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

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

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

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

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

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

как поменять кодировку в консоли линукс. Смотреть фото как поменять кодировку в консоли линукс. Смотреть картинку как поменять кодировку в консоли линукс. Картинка про как поменять кодировку в консоли линукс. Фото как поменять кодировку в консоли линукс

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

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *