Содержание
Описание проблемы
Ubuntu по умолчанию использует кодировку текстовых файлов UTF-8, однако некоторые операционные системы используют другие кодировки (например, русская версия Microsoft Windows использует CP-1251). Из-за разницы в кодировках могут возникнуть проблемы при открытии текстовых файлов в редакторе Gedit — они будут нечитаемыми. Данная статья предлагает несколько простых способов решения этой проблемы.
Настройка Gedit на автоопределение кодировки
Gedit может автоматически определить нужную кодировку. Для этого его нужно немного настроить.
Есть 3 варианта:
Вариант 1.
Запускаем dconf-editor и переходим в
Редактируем ключ auto_detected 3) , вписывая нужную нам кодировку
Вариант 2.
Выполните в терминале команду:
Откроется Редактор Конфигурации GNOME. В нем откройте для редактирования ключ auto_detected 4) . В появившемся окне редактирования переместите нужную вам кодировку вверх, так, чтобы она находилась сразу после UTF-8. Нажмите OK и закройте редактор.
Вариант 3. Выполните в терминале команду:
Для Ubuntu 16.04:
Для Ubuntu Mate 16.04:
Данный способ является самым быстрым.
Теперь, если вы откроете файл с кодировкой WINDOWS-1251 — он будет правильно отображаться в Gedit.
Смена кодировки открытого файла
С помощью системы плагинов можно добавить возможность выбора кодировки уже открытого файла.
/.local/share/gedit/plugins (если такой папки нет, то её нужно создать)
После этого в главном меню Файл появляется пункт «Encoding», который позволяет менять кодировку в уже открытом документе.
Открывая тестовый файл, который ранее был создан в Windows через программу Блокнот, вы скорее всего наткнетесь на проблему некорректного отображения русских символов в текстовом редакторе, используемом в Ubuntu по умолчанию (по умолчанию в Ubuntu используется редактор GEdit). К счастью, данную "проблему" легко решить. Ведь тут вся проблема, как вы, наверное, уже догадались, кроется всего-навсего в кодировке самого файла.
Стандарты кодировки и Microsoft
Давным-давно известно, что компания Microsoft "любит" использовать собственные стандарты, отказываясь при этом от общемировых, а если кто-то не хочет с этим фактом считаться, то Microsoft попросту это игнорирует. Но Microsoft может это себе позволить, будучи хоть и платной, но самой распространенной операционной системой в мире.
Яркий пример по установлению компанией Microsoft собственных стандартов — это пакет Microsoft Office, который включает в себя такие известные программы, как MS Word и MS Excel. Если пользователь не сможет открыть файл, созданный в одном из этих редакторов на используемой им операционной системе (например, Android, Linux или Mac OS X), то ему скорее всего это доставит огромные неудобства и в конечном счете заставит отказаться от использования операционной системы, но не от самого распространенного в мире формата текстовых и табличных документов.
При этом тут как бы отходит на второй план то факт, что формат файлов ODT линуксового Open Office в отличие от DOC и тем более DOCX является общепринятым. Мир не заставишь в одночасье отказаться от Windows, а значит, и от ее фирменного пакета Microsoft Office.
В случае с текстовым файлом Microsoft как всегда проигнорировала общепринятый стандарт кодировки символов UTF-8, используемый в операционной системе Ubuntu. Операционная система Windows по умолчанию сохраняет русский текст при использовании блокнота в кодировке Windows 1251, которая уже очень устарела. Вместо кодировки Windows 1251 сейчас принято использовать другую кодировку под названием Koi8-r.
Но поскольку кодировки Windows 1251 и Koi8-r похожи как близнецы, то редактор GEdit попросту не может распознать используемую в текстовом файле, сохраненном в Блокноте из под Windows, кодировку. Правда, эту проблему очень легко побороть — для этого нужно всего-навсего установить приоритеты кодировок в программе GEdit. Иначе говоря, нужно просто попросить GEdit вначале пробовать открыть файл в кодировке Windows 1251, а затем уже пробовать открытие в кодировке Koi8-r.
Установка приоритетов кодировок в GEdit
Для задания приоритета кодировок выполните запустите программу Терминал.
А затем наберите в Терминале команду, которая указана ниже:
gsettings set org.gnome.gedit.preferences.encodings auto-detected "[‘UTF-8’, ‘WINDOWS-1251’, ‘CURRENT’, ‘ISO-8859-15’, ‘UTF-16’]"
После успешного выполнения указанной выше команды ваш текстовый файл из Windows откроется без иероглифов в читабельном виде.
На этом все. Вопросы как всегда в комментариях.
Upd 24.01.2019
В Ubuntu 18.04 для изменения приоритета кодировок в текстовом редакторе GEdit необходимо выполнять в Терминале команду
Очень понравилось начинание владельца сайта! Сам я, как полный нуб в Ubuntu, попробую описать решение очередной своей нубовской проблемы. А именно — иероглифы и крякозябры в текстовых файлах, которые создавались под Виндой. Для тех, кто также столкнулся с подобной проблемой и не нашел решения — привожу два варианта.
Первый (и самый простой) — открываем терминал (Ctrl+Alt+T) и вводим в него команду
gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "[‘UTF-8’, ‘WINDOWS-1251’, ‘CURRENT’, ‘ISO-8859-15’, ‘UTF-16’]"
Все должно заработать.
Если нет — пробуем ВТОРОЙ вариант:
- Устанавливаем Редактор Dconf (Ctrl+Alt+T) и команда
sudo apt-get install dconf-tools - Открываем редактор и, с его помощью, переходим в раздел /org/gnome/gedit/preferences/encodings/
Там открываем единственный в директории файл. - Переключаем ползунок "use default value"/"использовать стандартное значение" в выключенное положение и в ставшую активной строку вводим все так, чтобы получилось следующее:
[‘UTF-8’, ‘WINDOWS-1251’, ‘CURRENT’, ‘ISO-8859-15’, ‘UTF-16’]
Жмем подтвержающую галочку (при наличии) и проверяем работу;-)
Надеюсь кому-то будет полезным:-) А автору ресурса — огромной удачи в развитии проекта!!)
@willy спасибо за вклад в сообщество, очень полезная и ценная информация, думаю многие сталкивались с такой проблемой.
@willy Спасибо, не знаю это или не это, НО, вчера при установки драйвера для видеокарты NVidia 1060-3, ответ был:
Невозможно корректно установить из за бла бла бла, из всего я только понял, что что-то и чего-то не смогло прочитать, и связано это с кодировкой, попробую, наверное отпишусь только завтра.