При переключении кодировки BOM появляется прямо в редакторе
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
При переключении кодировки BOM появляется прямо в редакторе
Создал вот тикет на мантисе (#0001377), но его тут же без обсуждения закрыли, мол фича.
А хотелось бы немного обсудить.
Вкратце: в определённых ситуациях фар открывает юникодный (UTF-8) файл в однобайтной неюникодной кодировке.
Юзер, заметив оплошность, вручную (Shift-F8) переключает кодировку в UTF-8.
Проблема в том, что после этого в начало текста попадает BOM.
Это не всегда увидишь - в некоторых шрифтах он имеет нулевую ширину.
Я бы и незаметил, но при попытке сохранить (Shift-F2) файл в кодировке 866, фар выдал
После нажатия Show курсор остался в начале файла, причём Consolas не дал мне увидеть BOM.
Понятно, что такая фича у редактора - при смене кодировки файл не перечитывается.
Но всё равно считаю что тикет закрыт преждевременно.
Даже если при текущем дизайне редактора нецелесообразно фиксить "баг", не факт что в будущем дизайн не изменится.
(А с кодировками проблем сейчас хватает)
Либо возможно какое-нибудь альтернативное решение. Например, если при попытке открыть файл в однобайтной кодировке встречается BOM - фар может спросить пользователя а что с ним делать: Оставить/Удалить/Открыть в юникоде.
Собственно проблемка мелкая, и тему я создал больше для информации, ведь закрытый тикет вряд ли кто уже увидит.
P.S.
Непонятно зачем торопиться закрывать тикет, даже если нет намерения фиксить. Пусть себе повисит некоторое время - люди хоть увидят какая фича есть.
А вообще зачем-то есть на мантисе категория Known Error, только ей не пользуются.
А хотелось бы немного обсудить.
Вкратце: в определённых ситуациях фар открывает юникодный (UTF-8) файл в однобайтной неюникодной кодировке.
Юзер, заметив оплошность, вручную (Shift-F8) переключает кодировку в UTF-8.
Проблема в том, что после этого в начало текста попадает BOM.
Это не всегда увидишь - в некоторых шрифтах он имеет нулевую ширину.
Я бы и незаметил, но при попытке сохранить (Shift-F2) файл в кодировке 866, фар выдал
После нажатия Show курсор остался в начале файла, причём Consolas не дал мне увидеть BOM.
Понятно, что такая фича у редактора - при смене кодировки файл не перечитывается.
Но всё равно считаю что тикет закрыт преждевременно.
Даже если при текущем дизайне редактора нецелесообразно фиксить "баг", не факт что в будущем дизайн не изменится.
(А с кодировками проблем сейчас хватает)
Либо возможно какое-нибудь альтернативное решение. Например, если при попытке открыть файл в однобайтной кодировке встречается BOM - фар может спросить пользователя а что с ним делать: Оставить/Удалить/Открыть в юникоде.
Собственно проблемка мелкая, и тему я создал больше для информации, ведь закрытый тикет вряд ли кто уже увидит.
P.S.
Непонятно зачем торопиться закрывать тикет, даже если нет намерения фиксить. Пусть себе повисит некоторое время - люди хоть увидят какая фича есть.
А вообще зачем-то есть на мантисе категория Known Error, только ей не пользуются.
https://t.me/FarManager — Telegram чат
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: При переключении кодировки BOM появляется прямо в редакт
Ок, представим по вашему:
открыли в анси, перелючили в утф, фар бом отрезал, переключили назад в анси - опа, а байтов-то стало меньше, чем было. Деструктивная операция. Без предупреждения. Плохо.
Если сильно не согласен - открой, повисит.
открыли в анси, перелючили в утф, фар бом отрезал, переключили назад в анси - опа, а байтов-то стало меньше, чем было. Деструктивная операция. Без предупреждения. Плохо.
Затем, чтобы "два раза не вставать".Непонятно зачем торопиться закрывать тикет, даже если нет намерения фиксить. Пусть себе повисит некоторое время - люди хоть увидят какая фича есть.
Если сильно не согласен - открой, повисит.
Known Error - это таки про ошибки, а не про всё подряд.А вообще зачем-то есть на мантисе категория Known Error, только ей не пользуются.
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: При переключении кодировки BOM появляется прямо в редакт
А может ли изначально в анси быть BOM? Неужто влазит в кодировку?DrKnS wrote:открыли в анси, перелючили в утф, фар бом отрезал, переключили назад в анси - опа, а байтов-то стало меньше, чем было. Деструктивная операция. Без предупреждения. Плохо.
А что, название общее, можно трактовать и как ошибки пользователяDrKnS wrote:Known Error - это таки про ошибки, а не про всё подряд.А вообще зачем-то есть на мантисе категория Known Error, только ей не пользуются.
https://t.me/FarManager — Telegram чат
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: При переключении кодировки BOM появляется прямо в редакт
Выше было про пересохранение, тут - про смену кодовой страницы. Немного разные вещи.В Анси не может быть таких символов, о чём фар и предупреждает (выше я писал).
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: При переключении кодировки BOM появляется прямо в редакт
"По нашему" ничем не отличается от того что есть сейчас: Открыли файл в UTF-8, переключили в 866, нажали F2 - бома нет. И хорошо что нет, зачем он в Анси?DrKnS wrote:Ок, представим по вашему:
открыли в анси, перелючили в утф, фар бом отрезал, переключили назад в анси - опа, а байтов-то стало меньше, чем было. Деструктивная операция. Без предупреждения. Плохо.
Ах да, файл же на самом деле не в анси.
Так нефиг F2 жать в неправильной кодировке! Ничего, исправим - ShiftF2
https://t.me/FarManager — Telegram чат
Re: При переключении кодировки BOM появляется прямо в редакт
Все же нехорошо, что BOM-код появляется в редакторе. Не знаю, как должно быть, но не так.John Doe wrote:Ничего, исправим - ShiftF2
Например, можно просто его изымать при сохранении в другой кодировке и помещать опять при сохранении в UTF-8.
Появляется BOM-код в экзотических условиях, когда есть необхоидмость исправить текст после неправильного преобразования 866->UTF-8.
Переключение в редакторе текста в UTF-8 на другие кодировки (866, 1251) тут же делает текст испорченным двухбайтовым, а попытка переключиться во вьювер и открыть HEX-просмотр тут же обнажает BOM-код, который остаётся после возврата в обычный режим просмотра.
Я не понимаю, зачем обманывать себя и оставлять BOM-код доступным для просмотра/сохранения, если кодировка уже не UTF-8 ?
Ведь его же можно всегда добавить вновь при переключении в кодировку UTF-8...
Re: При переключении кодировки BOM появляется прямо в редакт
Очень нужен инструмент для того, чтобы часть текста закинуть в клипбоард и преобразовать его в любую другую кодировку, нужно для исправления после ошибочного неправильного преобразования текста. В однобайтных кодировках это достигалось просто временной сменой кодировки всего файла и помещением текста в клипбоард. Если есть средство для изменения части текста, то необходимость в таком действии отпадёт.
В данном случае, нужно подправить выборочно строку из Descript.ion.
Может быть, есть для этого какой-либо макрос?
В данном случае, нужно подправить выборочно строку из Descript.ion.
Может быть, есть для этого какой-либо макрос?
- John Doe
- Бюрократ
- Posts: 13801
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 72 times
- Been thanked: 425 times
- Contact:
Re: При переключении кодировки BOM появляется прямо в редакт
Shift-F2, причём я об этом уже упоминал.
И в этой теме ваш вопрос является оффтопиком.
И в этой теме ваш вопрос является оффтопиком.
- Smitis
- Posts: 1709
- Joined: Fri 18 Mar, 2005 12:51
- Location: Питер
- Has thanked: 23 times
- Been thanked: 55 times
В UTF-8 показывается символ сигнатуры
Если файл в UTF-8 с сигнатурой открыть в CP1251 (или другой однобайтной), а потом переключится (ShiftF8) на UTF-8, в начале текста остаётся символ, видимо, соответствующий байтам сигнатуры. После переоткрытия файла всё показывается нормально. Удаление этого символа приводит к удаление байтов сигнатуры из файла.
П.С.
А если открыть в кодировке IBM EBCDIC (500), а потом переключится на UTF-8, показываются ещё и символы конца строк.
П.С.
А если открыть в кодировке IBM EBCDIC (500), а потом переключится на UTF-8, показываются ещё и символы конца строк.
Разум когда-нибудь победит.
Искажение информации в редакторе по F4, после переключения кодировок
Если набрать следующую информацию в редакторе по F4 при кодовой странице OEM (866)
ы и
я т
п.и
т.и
то после переключения в UTF-8 (65001) и обратно в OEM (866) получаем следующее
ыаи
я т
п.и
тои
Редактор не замечает изменений и если выйти по ESC то выход идёт без запроса на сохранение изменений
и сам исходный файл не изменяется. Но если сделать сохранение по F2, то файл уже становится изменённым.
Я проверял без плагинов по FAR /P - всё то же самое
Проверено на 3.0 build 5354 x64 Far30b5354.x86.20190117.msi (help выдаёт неверную информацию, что это 3.0 build 5254 x64
ы и
я т
п.и
т.и
то после переключения в UTF-8 (65001) и обратно в OEM (866) получаем следующее
ыаи
я т
п.и
тои
Редактор не замечает изменений и если выйти по ESC то выход идёт без запроса на сохранение изменений
и сам исходный файл не изменяется. Но если сделать сохранение по F2, то файл уже становится изменённым.
Я проверял без плагинов по FAR /P - всё то же самое
Проверено на 3.0 build 5354 x64 Far30b5354.x86.20190117.msi (help выдаёт неверную информацию, что это 3.0 build 5254 x64
- HaRT
- Moderator
- Posts: 10806
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 220 times
- Been thanked: 357 times
Искажение информации в редакторе по F4, после переключения кодировок
Подтверждаю.
Подтверждаю.
В сборке 5356 такого нет.
Фар есть инструмент, а не нянька. © 2009 DrKnS
Искажение информации в редакторе по F4, после переключения кодировок
Тысячу извинений про сообщение, что help выдаёт неверную информацию. У меня установлен 3.0 build 5254 x64, и я ещё проверил на 3.0 build 5354 x86. Основная проблема осталась, но при переключении экранов я перепутал что у меня где, и сообщил что help "ошибается"