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

Хотите говорить о Far и не знаете, куда обратиться?
User avatar
HaRT
Moderator
Posts: 7880
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 62 times
Been thanked: 93 times

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

Postby HaRT » Mon 12 Mar, 2012 09:14

Хорошо бы добавить в FAQ вопрос/ответ про смену кодировки файла.

2012-03-14
Выявились неоднозначности, надо сперва самим договориться, чтобы простых пользователей не смущать.
Last edited by HaRT on Wed 14 Mar, 2012 12:20, edited 1 time in total.
Reason: Тема отделена, добавлено примечание
Фар есть инструмент, а не нянька. © 2009 DrKnS

User avatar
John Doe
Бюрократ
Posts: 11028
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

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

Postby John Doe » Wed 14 Mar, 2012 11:00

В том виде - нет.
Дело в том что если под "сменой кодировки" понимать "сменой кодировки файла" это однозначно Shift-F2.
Но если вы например поищете по форуму, то легко убедитесь, что в 90% случаев под "сменой кодировки" имеется ввиду вовсе не изменение самого файла, а всего лишь изменение его "проекции на редактор", т.е. Shift-F8.
И это не заблуждение и не ошибка, а просто двусмысленность понятия "кодировка".

2useven10
Posts: 2834
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 72 times

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

Postby 2useven10 » Wed 14 Mar, 2012 11:14

изменение его "проекции на редактор", т.е. Shift-F8

Ещё одно заблуждение. Изменение "проекции файла на редактор" - это Shift-F4 и задание кодировки.

User avatar
John Doe
Бюрократ
Posts: 11028
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

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

Postby John Doe » Wed 14 Mar, 2012 11:32

Вот не надо только придираться к словам.
Люди на форуме общаются на обычном русском, и под "сменить кодировку" понимают ровно то, что сказано в справке, и никакого заблуждения тут нет:
FarRus.hlf wrote:

Code: Select all

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

2useven10
Posts: 2834
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 72 times

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

Postby 2useven10 » Wed 14 Mar, 2012 11:59

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

User avatar
John Doe
Бюрократ
Posts: 11028
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

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

Postby John Doe » Wed 14 Mar, 2012 12:04

Всё верно, но именно эта проблема к упомянутому выше Shift-F2 не имеет отношения.

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

2useven10
Posts: 2834
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 72 times

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

Postby 2useven10 » Wed 14 Mar, 2012 12:13

1) Shift-F2 -- смена кодировки файла который корректно отображается в редакторе. Иначе двойное перекодирование и потенциальная потеря данных.

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

User avatar
John Doe
Бюрократ
Posts: 11028
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

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

Postby John Doe » Wed 14 Mar, 2012 12:18

1) 100%.
2) Если в редакторе несохранённый текст, то после Shift-F4 неизбежен запрос на сохранение, т.е. никакой разницы с F2 нет.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Postby Max Rusov » Wed 14 Mar, 2012 12:30

John Doe wrote:2) Если в редакторе несохранённый текст, то после Shift-F4 неизбежен запрос на сохранение, т.е. никакой разницы с F2 нет.

Ни фига не спрашивает, молча перезагружает

User avatar
John Doe
Бюрократ
Posts: 11028
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

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

Postby John Doe » Wed 14 Mar, 2012 12:32

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

User avatar
John Doe
Бюрократ
Posts: 11028
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

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

Postby John Doe » Wed 14 Mar, 2012 12:38

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

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

2useven10
Posts: 2834
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 72 times

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

Postby 2useven10 » Wed 14 Mar, 2012 12:48

John Doe то что Вы 'ни фига не согласны' понятно. Может пора описать по-ша-го-во что должен делать фар, чтобы решить проблему 'автоматически'. Пока ни здесь ни в обсуждении M#1773/5 я этого не видел.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Postby Max Rusov » Wed 14 Mar, 2012 12:56

Моя версия макроса. В принципе - это ответ на вопрос, что должен делать FAR автоматически. Мне кажется, что как-то так и должен.


User avatar
John Doe
Бюрократ
Posts: 11028
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 9 times
Been thanked: 61 times

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

Postby John Doe » Wed 14 Mar, 2012 13:01

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

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

Last edited by John Doe on Wed 14 Mar, 2012 13:31, edited 1 time in total.
Reason: перемудрил

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Postby Max Rusov » Wed 14 Mar, 2012 13:03

+ По возможности попытаться сохранить текущую позицию

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

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

Postby Max Rusov » Wed 14 Mar, 2012 13:20

John Doe

Как то Вы непонятно сформулировали. Я бы сказал так:

Есть 2 пути:
1. Менять кодировку путем перечитывания файла (предварительно предложив сохранить изменения, если были)
2. Менять кодировку уже загруженного файла "на лету", как делает F8/ShiftF8

Второй способ был хорош в эпоху 1-го FAR'а. Сейчас, со зверинцем юникодных кодировок от него больше проблем чем пользы. Я бы предложил полностью перейти на 1-й способ, при этом снимутся все ограничения на переключение кодировок по F8/ShiftF8...


Return to “Обсуждение Far Manager”

Who is online

Users browsing this forum: No registered users and 1 guest