Page 1 of 1

Макрос автоопределения кодировки для редактора

Posted: Fri 10 Mar, 2017 00:12
by textExpanser
Возможно ли написать макрос, который будет гибко решать какую кодировку в редакторе выставить?
- если создается новый файл, выставлять по-умолчанию UTF8
- если открывается существующий файл, определять является ли он UTF8 (есть ли в нем недопустимые для cp1251 символы и тогда, если есть, открывать как UTF8, а если нет и нет BOM в начале файла, то открывать в старой кодировке CP1251)
- а может быть еще и научить определять DOS/KOI8/UTF16...

Сейчас проблема в том, что в Far (Far2) по-умолчанию открывается как cp1251, я переделал простейшим macro-recorderom, чтобы открывалось в utf-8. Но дело в том, что сменить кодировку ПОСЛЕ открытия уже не получится - все несовместимые символы будут просто испорчены, поэтому выбирать кодировку нужно именно на этапе открытия файла (перед открытием). А у меня много файлов и в utf-8, и в cp1251, и ПЕРЕоткрывать их в правильной кодировке просто настоящее мучение. А встречаются еще и в DOS.

Можно ли макросом определить какая кодировка у файла? Сам Far как-то определяет, что в файле есть символы в недопустимой кодировке. Может и макросом можно как-то извратиться? (Можно даже отрыть два раза - сначала чтобы определить кодировку, закрыть, и открыть уже в правильной кодировке, например. Главное решить проблему, пусть и через зад.)

Макрос автоопределения кодировки для редактора

Posted: Fri 10 Mar, 2017 00:31
by HaRT
Зачем макрос? Чем Вас не устраивают “[x] Autodetect code page” и “Default code page:” в настройках редактирования (Editor settings)?

Макрос автоопределения кодировки для редактора

Posted: Fri 10 Mar, 2017 01:03
by textExpanser
Спасибо, попробую, - если будут глюки с определением кодировки отпишусь. Кажется я уже когда-то с этой опцией игрался, но забыл что там не устроило.
А при создании нового файла оставю макрос, автоматически выбирающий UTF-8 при нажатии Shift-F4, чтобы сразу вставляло BOM-маркер в начало файла.

Макрос автоопределения кодировки для редактора

Posted: Fri 10 Mar, 2017 08:16
by 2useven10
textExpanser wrote:Source of the post Сейчас проблема в том, что в Far (Far2) по-умолчанию открывается как cp1251, я переделал простейшим macro-recorderom, чтобы открывалось в utf-8. Но дело в том, что сменить кодировку ПОСЛЕ открытия уже не получится

Это верно для фар2. Работа с кодировками в фар3 существенно переделана.
Насколько я помню, смена кодировки после открытия должна работать.
Кроме того можно задать utf-8 как умолчательную, управлять списком кодовых страниц при переключении по F8....