четверг, 2 июля 2015 г.

Решение проблемы с кодировкой в Gedit

Столько времени прошло, а по умолчанию эта проблема так и не была решена. Я понимаю, что нормальные люди используют нормальные операционные системы и редакторы, которые работают с правильными кодировками. А остальных надо было бы наказать как минимум, а лучше убить просто научить. Но мир жесток и приходится подстраиваться под меньшинства.
Когда открываете в редакторе Gedit в Ubuntu или Pluma в Linux Mint текстовые файлы, созданные в блокноте Windows, как правило, увидите, что вместо текста отображаются нечитаемые "крокозябры".

В данной статье расскажу, как легко и быстро решить эту проблему.

Многие встречались с такой проблемой, когда Вы пытаетесь открыть txt файл от пользователяWindows стандартным текстовым редактором Gedit, а вместо вменяемого текста видите вот такие "крокозябры":


Можно конечно во всех этих файлах менять кодировку через консоль с помощью утилиты "iconv".
Но в данной статье хочу предложить более простой способ.

Итак, в чем же кроется проблема?

По умолчанию, в Ubuntu в текстовых файлах, да и вообще в системе, использует кодировку UTF-8. А вмайкрософтовских продуктах используется кривая и устаревшая кодировка Windows 1251(cp1251), когда сохраняете файлы стандартным блокнотом, но помимо её еще есть кодировка koi8-r.
Стандартный текстовый редактор Gedit распознает эти кодировки, только вот не может отличить cp1251 от koi8-r (что на самом деле очень сложно, так как они практически идентичны).
В этом и кроется проблема. 

Решение проблемы с распознаванием кодировки в Gedit для Ubuntu

Чтобы корректно отображались текстовые файлы с кодировкой CP-1251 (Win1251), нам нужно в редакторе Gedit установить приоритет кодировке CP-1251 (Windows1251). 
Для этого выполним в Терминале следующую команду: 
gsettings set org.gnome.gedit.preferences.encodings auto-detected "['UTF-8', 'WINDOWS-1251', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
 В случае получения ошибки "Ключ «auto-detected» отсутствует" выполнить следующий вариант команды:
gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['UTF-8', 'WINDOWS-1251', 'KOI8-R', 'CURRENT', 'ISO-8859-15', 'UTF-16']"
gsettings set org.gnome.gedit.preferences.encodings candidate-encodings "['UTF-8', 'WINDOWS-1251', 'KOI8-R', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

Теперь пробуем открыть TXT файл снова. 


Теперь мы можем прочитать наш текст.

Решение проблемы с распознаванием кодировки в Pluma для Linux Mint

Аналогично, чтобы корректно отображались текстовые файлы с кодировкой CP-1251 (Win1251), нам нужно для редактора Pluma (форк редактора Gedit) установить приоритет кодировке CP-1251(Windows1251). 
Для этого выполним в Терминале следующую команду: 
gsettings set org.mate.pluma auto-detected-encodings "['UTF-8', 'WINDOWS-1251', 'CURRENT', 'ISO-8859-15', 'UTF-16']"

Вот и всё, теперь текстовые файлы будут отображаться правильно в текстовом редакторе Gedit вUbuntu и Pluma в Linux Mint.