В редакторе теперь BOM по умолчанию?

Хотите говорить о Far и не знаете, куда обратиться?
2useven10
Posts: 4042
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 187 times

Re: В редакторе теперь BOM по умолчанию?

Post by 2useven10 »

Latest post of the previous page:

http://bugs.farmanager.com/view.php?id=2407

Vasilich
Posts: 28
Joined: Fri 18 Dec, 2009 11:50

Re: В редакторе теперь BOM по умолчанию?

Post by Vasilich »

Centaur wrote:Давайте уберём эту настройку и будем все файлы по умолчанию создавать в UTF-8 с BOM (в конце концов, у нас тут 2011 или где?). А кому надо без BOM или в допотопных кодировках — пусть настраивают через плагин.
Коллеги, у нас тут уже несколько часов до 2014 года. В Фаре файлы по-прежнему создаются с этим гребаным BOM.
Стоит последний релиз 3.0 build 3525 x86 - все настройки перерыл и не нашел как этот мусор вначале файла, который мешает всему современному софту, отключить напрочь.
Самое интересное, в файлах *.farconfig этого мусора нет. В диалоге сохранения Shif+F2 - отлючаю Add signature (BOM), выбираю Unix format (LF), сохраняю. Создаю другой файл: формат файла (LF) запомнило, а Add signature (BOM) - опять включено. Вот наказание...

На дворе 21-й век, а этот BOM в настройках так и не побороли. Или может я что-то не нашел, может какими-то внешними костылями исправили это недоразумение?

в changelog: w17 08.05.2013 15:09:55 +0400 - build 3398
1. M#2407: Allow to disable BOM generation for UTF codepages in new files

Это речь о том, что нужно помнить, что BOM - это зло и постоянно контролировать через Shift+F2 что там FAR сохранит, а потом на всякий случай на файле F3, F4 ?

Dzirt2005
Posts: 297
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 2 times

Re: В редакторе теперь BOM по умолчанию?

Post by Dzirt2005 »

Vasilich wrote:...
этот мусор вначале файла, который мешает всему современному софту, отключить напрочь.
"Современному" PHP уже надо было бы давным давно научится работать с BOM. Другой, действительно современный софт, уже давным давно это умеет и ему BOM совершенно не мешает. Может все-таки обратиться к разработчикам PHP, пусть подтянутся? ;)

User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

Re: В редакторе теперь BOM по умолчанию?

Post by lazyeugene »

В командной строке far:config Enter
В меню жмём ctrl+alt+f после чего вводим b o m

Остаётся единственная настройка. Как её можно не найти?

С PHP всё сложнее. За пределами php-тегов могут располагаться произвольные данные, это не обязательно текст. Там может быть файл с BOM, может файл без BOM может быть кусок архива или ещё что-то и данные надо отдавать как есть. Причина «неподдержки» BOM в PHP, думаю, в этом, и тут ничего не поделать. Это by design.

Dzirt2005
Posts: 297
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 2 times

Re: В редакторе теперь BOM по умолчанию?

Post by Dzirt2005 »

lazyeugene wrote:...
С PHP всё сложнее. За пределами php-тегов могут располагаться произвольные данные, это не обязательно текст. Там может быть файл с BOM, может файл без BOM может быть кусок архива или ещё что-то и данные надо отдавать как есть. Причина «неподдержки» BOM в PHP, думаю, в этом, и тут ничего не поделать. Это by design.
Ничего там не сложнее. По сути, обработка BOM нужна в require/require_once и include/include_once. В этом месте никаких архивов или других двоичных файлов быть не может в принципе. Это решает 99% поддержки. Остальное решается точно так же, как и в других языках программирования - режимом открытия файла. Файл можно открывать как текстовый, желательно с дополнительным указанием кодировки символов, или как двоичный. И все. А "by design в PHP" это просто глупость.

AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: В редакторе теперь BOM по умолчанию?

Post by AleXH »

Не знаю, не знаю, у меня случалось, что BOM ну вот совсем не упал. Поэтому я бы предпочёл ставить птичку, чем её снимать.

User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

Re: В редакторе теперь BOM по умолчанию?

Post by lazyeugene »

Dzirt2005 wrote: Ничего там не сложнее. По сути, обработка BOM нужна в require/require_once и include/include_once. В этом месте никаких архивов или других двоичных файлов быть не может в принципе. Это решает 99% поддержки. Остальное решается точно так же, как и в других языках программирования - режимом открытия файла. Файл можно открывать как текстовый, желательно с дополнительным указанием кодировки символов, или как двоичный. И все. А "by design в PHP" это просто глупость.
Я тоже когда-то так считал, но это не так. Любой файл PHP, независимо от require/include начинается не с PHP-кода до первого открывающего тега и там могут быть ЛЮБЫЕ данные. На этом всё. Остальное - спекуляция.

User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

Re: В редакторе теперь BOM по умолчанию?

Post by lazyeugene »

AleXH wrote:Не знаю, не знаю, у меня случалось, что BOM ну вот совсем не упал. Поэтому я бы предпочёл ставить птичку, чем её снимать.
Ну так вот как найти переключатель.

Dzirt2005
Posts: 297
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 2 times

Re: В редакторе теперь BOM по умолчанию?

Post by Dzirt2005 »

lazyeugene wrote:...
Я тоже когда-то так считал, но это не так. Любой файл PHP, независимо от require/include начинается не с PHP-кода до первого открывающего тега и там могут быть ЛЮБЫЕ данные. На этом всё. Остальное - спекуляция.
"Любой файл PHP" - и есть чистой воды спекуляция. Такого не существует в природе. Есть исходный код (программа) и есть данные. Исходный код PHP всегда текстовый, даже если файл включает кроме непосредственно самого PHP страницу html, все равно весь файл рассматривается как единый текстовый файл в одной и той же кодировке (кодировка может быть разной, но в пределах файла она одна). Никаких ЛЮБЫХ данных там не может быть.

User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

Re: В редакторе теперь BOM по умолчанию?

Post by lazyeugene »

Dzirt2005 wrote: "Любой файл PHP" - и есть чистой воды спекуляция. Такого не существует в природе. Есть исходный код (программа) и есть данные. Исходный код PHP всегда текстовый, даже если файл включает кроме непосредственно самого PHP страницу html, все равно весь файл рассматривается как единый текстовый файл в одной и той же кодировке (кодировка может быть разной, но в пределах файла она одна). Никаких ЛЮБЫХ данных там не может быть.
Бесполезно отрицать реальность. Там может быть почти что угодно, а после __halt_compiler() может быть вообще абсолютно что угодно. Приятно верить, что все php-фалы - это исходники в виде текстового файла (и, наверное, это было бы удобнее), но это не соответствует реальности.

User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

Re: В редакторе теперь BOM по умолчанию?

Post by lazyeugene »

Чтоб не морочить дальше голову теориями, вот простейший пример файла с бинарными данными (sample1.php в архиве). Поместить содержимое архива на веб-сервер, обратиться к sample.php. Если есть алгоритм, как php-движку решать, отрезать BOM с начала файла или нет - php открытый проект, если нет такого однозначного решения - тогда не надо разводить тут насчёт того, что php - это всегда чисто текст.

Далее это всё выливается в полный оффтопик, так что я призываю закрыть эту дискуссию здесь. Кому надо отключить автодобавление BOM - используйте настройку в far:config Editor.AddUnicodeBOM. Кому не нужно - не используйте. Кто точно знает, как должен работать php, и считает, что он работает не так, как должен - велкам на php.net
Attachments
sample.zip
(1.22 KiB) Downloaded 83 times

Dzirt2005
Posts: 297
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 2 times

Re: В редакторе теперь BOM по умолчанию?

Post by Dzirt2005 »

lazyeugene wrote:Чтоб не морочить дальше голову теориями, вот простейший пример файла с бинарными данными (sample1.php в архиве).
Да, конечно. Твой пример стал возможным только потому, что php ТАК работает. И это не означает, что это правильно. Я уже молчу о том, что тебе будет достаточно сложно придумать осмысленный пример, что ТАК делать именно НУЖНО и по другому НЕЛЬЗЯ. Разницы не видишь конечно же, да? Да и поскольку php это вещь в себе, никаким стандартам не подчиняющаяся, кто мешал разработчикам сделать пару вариантов include\bin_include или наоборот - without_bom_include/include? Да никто не мешал. Исключительно высокое самомнение о себе разработчиков php.
lazyeugene wrote:Если есть алгоритм, как php-движку решать, отрезать BOM с начала файла или нет
Конечно же есть! Выше приведен. И пусть программист решает. Я также промолчу о возможности задать поведение include/require в php.ini... Нет, php очень "современный" язык! И плевать он хотел на сложившиеся реалии, пусть весь мир под него прогибается...

User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

Re: В редакторе теперь BOM по умолчанию?

Post by lazyeugene »

Dzirt2005 wrote: Да, конечно. Твой пример стал возможным только потому, что php ТАК работает. И это не означает, что это правильно.
Ты не поверишь, php изначально делался, чтобы ТАК работать.
Dzirt2005 wrote: Конечно же есть! Выше приведен. И пусть программист решает. Я также промолчу о возможности задать поведение include/require в php.ini... Нет, php очень "современный" язык! И плевать он хотел на сложившиеся реалии, пусть весь мир под него прогибается...
Просто супер, когда не-пхпшники рассуждают о том, как следует использовать этот язык. Сейчас ещё холивар начни, какой язык лучше. Есть язык, он работает так, свои задачи выполняет. Не нравится - не используй.

Dzirt2005
Posts: 297
Joined: Fri 29 Feb, 2008 12:11
Been thanked: 2 times

Re: В редакторе теперь BOM по умолчанию?

Post by Dzirt2005 »

lazyeugene wrote:...
Просто супер, когда не-пхпшники рассуждают о том, как следует использовать этот язык.
С чего ты решил, что я его не использую? Или что он мне так уж не нравится? Но вот некоторые вещи реально бесят, в частности вот это упоротое нежелание его разработчиков сделать по-человечески обработку BOM'а, вариантов как можно было бы сделать масса, но не сделано вообще никак. И нет никакой причины почему не надо этого делать, тупое упрямство.

PS: Да, я также достаточно хорошо знаю C/C++ чтобы самостоятельно ввести в язык эту обработку. Только как бы кому нужно _мое_ решение, это должно быть в основной ветке, а не в какой-то никому неизвестной кастомной сборке.

User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

Re: В редакторе теперь BOM по умолчанию?

Post by lazyeugene »

Dzirt2005 wrote:
lazyeugene wrote:...
Просто супер, когда не-пхпшники рассуждают о том, как следует использовать этот язык.
С чего ты решил, что я его не использую? Или что он мне так уж не нравится? Но вот некоторые вещи реально бесят, в частности вот это упоротое нежелание его разработчиков сделать по-человечески обработку BOM'а, вариантов как можно было бы сделать масса, но не сделано вообще никак. И нет никакой причины почему не надо этого делать, тупое упрямство.
Я не говорю, что не используешь. Просто, то, что очевидно мне, почему-то не очевидно тебе. А именно - что php отличается от других языков как раз тем, что он "встроен" в "произвольный" контент, из чего следуют некоторые вещи, не совсем очевидные. Вот, типа BOM.

Всё, оффтопик. Дальше обсуждать php не нужно, отвечать тут на эту тему не буду.

Vasilich
Posts: 28
Joined: Fri 18 Dec, 2009 11:50

Re: В редакторе теперь BOM по умолчанию?

Post by Vasilich »

Dzirt2005 wrote:"Современному" PHP уже надо было бы давным давно научится работать с BOM. Другой, действительно современный софт, уже давным давно это умеет и ему BOM совершенно не мешает. Может все-таки обратиться к разработчикам PHP, пусть подтянутся? ;)
Зачем мне холодильник, когда я не курю?

Поясняю еще раз:
1. PHP НЕ интересует
2. Интересует FAR и как отключить в его редакторе BOM при создании файла.
lazyeugene wrote:В командной строке far:config Enter
В меню жмём ctrl+alt+f после чего вводим b o m
Огромный сенькс! Кажись то, что нужно. Только интересно - почему столь важную настройку не вынесли в обычный юзерский конфиг, ведь этот BOM многим очень мешает. Например, различный современный софт, сохраняя данные в формате UTF-8 не ставит BOM и, соответственно, не ожидает его там встретить.

Locked

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