Page 1 of 4

Смена кодировки текстового файла: неоднозначности

Posted: Mon 12 Mar, 2012 09:14
by HaRT
Хорошо бы добавить в FAQ вопрос/ответ про смену кодировки файла.

2012-03-14
Выявились неоднозначности, надо сперва самим договориться, чтобы простых пользователей не смущать.

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 11:00
by John Doe
В том виде - нет.
Дело в том что если под "сменой кодировки" понимать "сменой кодировки файла" это однозначно Shift-F2.
Но если вы например поищете по форуму, то легко убедитесь, что в 90% случаев под "сменой кодировки" имеется ввиду вовсе не изменение самого файла, а всего лишь изменение его "проекции на редактор", т.е. Shift-F8.
И это не заблуждение и не ошибка, а просто двусмысленность понятия "кодировка".

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 11:14
by 2useven10
изменение его "проекции на редактор", т.е. Shift-F8
Ещё одно заблуждение. Изменение "проекции файла на редактор" - это Shift-F4 и задание кодировки.

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 11:32
by John Doe
Вот не надо только придираться к словам.
Люди на форуме общаются на обычном русском, и под "сменить кодировку" понимают ровно то, что сказано в справке, и никакого заблуждения тут нет:
FarRus.hlf wrote:

Code: Select all

Shift-F8                Выбор кодовой страницы

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 11:59
by 2useven10
А это как раз и есть главный источник большинства недопониманий.
Для просмотрщика Shift-F8 это действительно выбор кодовой страницы, поскольку он всегда работает с исходным файлом. Для редактора это не так. Он пытается 'сменить кодировку' используя загруженный в память и уже перекодированный в UCS-2 текст. А это во многих случаях просто невозможно. Отсюда и большая часть воплей пользователей -- почему фар 'портит текст' или не может выполнить простого переключения кодировки.

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 12:04
by John Doe
Всё верно, но именно эта проблема к упомянутому выше Shift-F2 не имеет отношения.

Требуется F2 + Shift-F4 + указание правильной кодировки.
Причём это мог бы делать сам фар, а в т о м а т и ч е с к и, и все вопли пропали бы.

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 12:13
by 2useven10
1) Shift-F2 -- смена кодировки файла который корректно отображается в редакторе. Иначе двойное перекодирование и потенциальная потеря данных.

2) F2 - также может привести к безвозвратной порче данных. Так что - просто Shift-F4 и правильная кодировка. 'Сам' может не всегда. Искусственный интеллект с потенциальной потерей данных - не самое лучшее решение.

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 12:18
by John Doe
1) 100%.
2) Если в редакторе несохранённый текст, то после Shift-F4 неизбежен запрос на сохранение, т.е. никакой разницы с F2 нет.

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 12:30
by Max Rusov
John Doe wrote:2) Если в редакторе несохранённый текст, то после Shift-F4 неизбежен запрос на сохранение, т.е. никакой разницы с F2 нет.
Ни фига не спрашивает, молча перезагружает

Re: Смена кодировки текстового файла: неоднозначности

Posted: Wed 14 Mar, 2012 12:32
by John Doe
2useven10 wrote:Иначе двойное перекодирование и потенциальная потеря данных.
А вот в корне не согласен, потому что "иначе" - абсолютно другое действие, которое никогда не приведёт к искомому результату (т.е. даже если потеря данных и не произошла).
zg wrote:по shiftf8 меняется входная кодировка, по shiftf2 — выходная.

Re: Far 3 FAQ — обсуждение

Posted: Wed 14 Mar, 2012 12:38
by John Doe
Max Rusov wrote:Ни фига не спрашивает, молча перезагружает
Вы правы, т.е. всё ещё хуже! Используя Shift-F4 мы сами того не заметив можем потерять важные изменения!
Поэтому вначале нужно F2, а потом уж ShiftF4.

Мой макрос так и делает: если изменений нет - молча ShiftF4.
Если есть - предлагает сохранить, если пользователь соглашается, тогда F2 + ShiftF4.

Re: Смена кодировки текстового файла: неоднозначности

Posted: Wed 14 Mar, 2012 12:48
by 2useven10
John Doe то что Вы 'ни фига не согласны' понятно. Может пора описать по-ша-го-во что должен делать фар, чтобы решить проблему 'автоматически'. Пока ни здесь ни в обсуждении M#1773/5 я этого не видел.

Re: Смена кодировки текстового файла: неоднозначности

Posted: Wed 14 Mar, 2012 12:56
by Max Rusov
Моя версия макроса. В принципе - это ответ на вопрос, что должен делать FAR автоматически. Мне кажется, что как-то так и должен.


Re: Смена кодировки текстового файла: неоднозначности

Posted: Wed 14 Mar, 2012 13:01
by John Doe
2useven10 wrote:Пока ни здесь ни в обсуждении M#1773/5 я этого не видел.
"Здесь" это где? Я вообще-то давал ссылки на 1 и 2.
Собственно, ничего суперумного там нет, поэтому можем и с начала:

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


Re: Смена кодировки текстового файла: неоднозначности

Posted: Wed 14 Mar, 2012 13:03
by Max Rusov
+ По возможности попытаться сохранить текущую позицию