В редакторе теперь BOM по умолчанию?
В редакторе теперь BOM по умолчанию?
Версия 2.0 build 1234 x86
Воспроизведение:
Создаю файл Shift+F4: ввожу имя, указываю кодировку UTF-8
В файле ввожу несколько переводов строки сохраняюсь и выхожу
В начале файла 2 паразитных байта бома.
Для того, чтобы указать его отсутствие приходится явно открывать диалог "Сохранить в" (Shift+F2) и снимать галочку.
Однако нужна настройка нужно это безобразие по умолчанию или нет.
Мне вот нафиг не нужна и лишнее действие изрядно напрягает.
Воспроизведение:
Создаю файл Shift+F4: ввожу имя, указываю кодировку UTF-8
В файле ввожу несколько переводов строки сохраняюсь и выхожу
В начале файла 2 паразитных байта бома.
Для того, чтобы указать его отсутствие приходится явно открывать диалог "Сохранить в" (Shift+F2) и снимать галочку.
Однако нужна настройка нужно это безобразие по умолчанию или нет.
Мне вот нафиг не нужна и лишнее действие изрядно напрягает.
Буддизм Алмазного Пути, линия Карма Кагью.
- DrKnS
- Posts: 6114
- Joined: Thu 04 Aug, 2005 06:44
- Location: Kyiv
- Has thanked: 12 times
- Been thanked: 426 times
Re: В редакторе теперь BOM по умолчанию?
Да.В редакторе теперь BOM по умолчанию?
Не "паразитных", а "являющихся общепринятыми в windows".В начале файла 2 паразитных байта бома.
В интерфейсе не нужна, а в виде какого-нибудь EditorSetParameter::ESPT_<G|S>ETBOMSTATE - вполне, чтобы можно было рулить через ESC.Однако нужна настройка нужно это безобразие по умолчанию или нет.
Re: В редакторе теперь BOM по умолчанию?
Ужос!DrKnS wrote:Да.В редакторе теперь BOM по умолчанию?
Не "являющихся общепринятыми в windows" а навязываемыми в хр, свисте.DrKnS wrote:Не "паразитных", а "являющихся общепринятыми в windows".
У меня Far основной инструмент для работы с исходниками и большинство компиляторов/интерпретаторов на таких файлах обламываются.
А вот стандартный Блакнот файлы в utf-8 без BOM нормально открывает и отображает.
Так что, ИМХО, по умолчанию, лучше создавать без BOM-ов.
В диалоге настроек редактора. Там уже есть галочка: "Использовать кодовую страницу ANSI при создании файлов".DrKnS wrote:В интерфейсе не нужна, а в виде какого-нибудь EditorSetParameter::ESPT_<G|S>ETBOMSTATE - вполне, чтобы можно было рулить через ESC.Однако нужна настройка нужно это безобразие по умолчанию или нет.
Вместо неё выбор кодировок и чек для BOM-а в случае utf-8, а так же utf-16, utf-32 которые тоже могут быть без BOM-а (здесь)
Буддизм Алмазного Пути, линия Карма Кагью.
Re: В редакторе теперь BOM по умолчанию?
можно узнать что за динозавры?Tonal wrote: большинство компиляторов/интерпретаторов на таких файлах обламываются.
я все исходники перевел в utf-8, компиляторы не заметили
unicode без BOM - это зло
Re: В редакторе теперь BOM по умолчанию?
На вскидку: Delphi 7, Borland C++ Biulder 6, python 2.5, mingw gcc ...
В спецификации явно написано, что utf-16, utf-32 могут быть без BOM и как это трактовать.
А вот utf-8 может быть с BOM.
Причём т.к. к utf-8 не применимо понятие порядок байт, то и BOM для него ИМХО является избыточным и бессмысленным.
Но даже не важно нужен или нет нет BOM в файлах с utf-8.
Важно то, что очень многие программы на нём обламываются.
Стало быть должна быть настройка для поведения по умолчанию.
Я, например, часто редактирую файлы через ssh на линухах - там BOM тоже не нужен.
В спецификации явно написано, что utf-16, utf-32 могут быть без BOM и как это трактовать.
А вот utf-8 может быть с BOM.
Причём т.к. к utf-8 не применимо понятие порядок байт, то и BOM для него ИМХО является избыточным и бессмысленным.
Но даже не важно нужен или нет нет BOM в файлах с utf-8.
Важно то, что очень многие программы на нём обламываются.
Стало быть должна быть настройка для поведения по умолчанию.
Я, например, часто редактирую файлы через ssh на линухах - там BOM тоже не нужен.
Буддизм Алмазного Пути, линия Карма Кагью.
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: В редакторе теперь BOM по умолчанию?
Я в этом не спец. Но знаю, что на Mac у нас были проблемы с исходниками, которые должны и на Винде и на Маке компилится (БОМ на Маке не прошел). Решили тем, что убрали БОМы из исходников, и Visual Studio позволяет настроить, как создавать\сохранять по умолчанию новые файлы. Теперь все компилится и там, и там. То есть теоретически, если такая настройка будет в Фаре, кому-нибудь она может и быть полезной в определенных сценариях (чисто на Винде это вроде лишнее, а вот когда прицел есть, что то, что редактируется, будет использовано и еще где-то - надо бы).GrAnD wrote:можно узнать что за динозавры?Tonal wrote: большинство компиляторов/интерпретаторов на таких файлах обламываются.
я все исходники перевел в utf-8, компиляторы не заметили
unicode без BOM - это зло
P.S. Но по умолчанию БОМ должен писаться. А настройку можно и в тех.инфо, может впихнуть, большинству это вряд ли надо, будет только загромождать диалог, да и нежелательное использование теми, кто не понимает что это и зачем.
Re: В редакторе теперь BOM по умолчанию?
Посмотрите на год выпуска этих компиляторовTonal wrote:На вскидку: Delphi 7, Borland C++ Biulder 6
Если в 1993 году в дос использовалась кодировка 866 ведь это же не значит что надо сейчас все кодировать в ней
Эти компиляторы ждут кодировку 1251 на русской системе поэтому я не совсем понимаю причем тут utf
не уверен что не поддерживает, надо проверитьTonal wrote: python 2.5
ОбманываетеTonal wrote: mingw gcc
Я как человек которому приходится редактировать файлы на нескольких языках ожидал бы чтобы редакторы открывали их в правильной кодировке, поэтому без BOM обойтись не могу, иначе редакторы бы открывали файлы как попало, особенно это касается utf-8.Tonal wrote: В спецификации явно написано, что utf-16, utf-32 могут быть без BOM и как это трактовать.
А вот utf-8 может быть с BOM.
Вы не совсем до конца поняли назначение BOMTonal wrote: Причём т.к. к utf-8 не применимо понятие порядок байт, то и BOM для него ИМХО является избыточным и бессмысленным.
Это всего лишь из-за древности применяемых программ.Tonal wrote: Важно то, что очень многие программы на нём обламываются.
Возможно. Но все таки IMHO фар должен подталкивать пользователя сделать правильнее.Tonal wrote: Стало быть должна быть настройка для поведения по умолчанию.
опять же это связано лишь с тем что используемые вами редакторы программисты не торопятся привести в порядок относительно работы с кодировками. для правильного редактора BOM должен быть прозрачен, пользователь даже не должен знать о его существовании.Tonal wrote:Я, например, часто редактирую файлы через ssh на линухах - там BOM тоже не нужен.
Re: В редакторе теперь BOM по умолчанию?
А чем на маке собирают? у него свой компилятор какой-то?NightRoman wrote:Но знаю, что на Mac у нас были проблемы с исходниками, которые должны и на Винде и на Маке компилится (БОМ на Маке не прошел).
- NightRoman
- Posts: 6184
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Re: В редакторе теперь BOM по умолчанию?
Понятия не имею, "не по моему департаменту" это. Наверное, свой компилятор(ы), не Visual Studio же там, иначе б проблемы и не было.GrAnD wrote:А чем на маке собирают? у него свой компилятор какой-то?
Re: В редакторе теперь BOM по умолчанию?
я всегда думал что по скольку MAC - это юникс то там собирают на gcc, а он прекрасно понимает BOM...NightRoman wrote:Понятия не имею, "не по моему департаменту" это. Наверное, свой компилятор(ы), не Visual Studio же там, иначе б проблемы и не было.GrAnD wrote:А чем на маке собирают? у него свой компилятор какой-то?
- HaRT
- Moderator
- Posts: 10823
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: В редакторе теперь BOM по умолчанию?
Там есть родная среда разработки XCode, но многие для кросс-платформенной сборки используют gcc и иже с ним.GrAnD wrote:А чем на маке собирают? у него свой компилятор какой-то?NightRoman wrote:Но знаю, что на Mac у нас были проблемы с исходниками, которые должны и на Винде и на Маке компилится (БОМ на Маке не прошел).
Фар есть инструмент, а не нянька. © 2009 DrKnS
Re: В редакторе теперь BOM по умолчанию?
Эти компиляторы не "ждут кодировку 1251" они обрабатывают исходник как 8и битный текст.GrAnD wrote:Посмотрите на год выпуска этих компиляторовTonal wrote:На вскидку: Delphi 7, Borland C++ Biulder 6
Если в 1993 году в дос использовалась кодировка 866 ведь это же не значит что надо сейчас все кодировать в ней
Эти компиляторы ждут кодировку 1251 на русской системе поэтому я не совсем понимаю причем тут utf
И BOM в начале файла приведёт в синтаксической ошибке, а вот в комментариях и строках могут быть любые последовательности байт.
Да и зачем мне смотреть на их год выпуска если мне нужно поддерживать проекты, которые на них работают?
Ещё на Borland C++ 5.02 есть проекты...
А вот денег на перевод этого добра под новьё никто не даст.
Натыкался.GrAnD wrote:не уверен что не поддерживает, надо проверитьTonal wrote: python 2.5
Попробовал обучить пользователя по телефону, что в блокноте можно выбрать сохранение без BOM, но потом плюнул, и научил запускать IDLE.
Действительно, mingw32 v 4.4.0 сожрал.GrAnD wrote:ОбманываетеTonal wrote: mingw gcc
А вот mingw32-make (наипоследний GNU Make 3.81) сказал:
Code: Select all
mingw32-make: *** No rule to make target `echo', needed by `п»їall'. Stop.
Вот вывод bash (наипоследний GNU bash, version 3.1.17(1)-release (i686-pc-msys))
Code: Select all
bom_test.sh: bom_test.sh: cannot execute binary file
В python-е по стандарту в первой или второй строке скрипта должна указываться кодировка таким образом:GrAnD wrote: Я как человек которому приходится редактировать файлы на нескольких языках ожидал бы чтобы редакторы открывали их в правильной кодировке, поэтому без BOM обойтись не могу, иначе редакторы бы открывали файлы как попало, особенно это касается utf-8.
Code: Select all
# -*- coding: utf-8 -*-
В XML кодировка тоже указывается в заголовке.
BOM никак не решает проблему кодировок.
Насколько я понимаю, BOM для utf-8 может использоваться только как необязательная сигнатура файла.GrAnD wrote:Вы не совсем до конца поняли назначение BOMTonal wrote: Причём т.к. к utf-8 не применимо понятие порядок байт, то и BOM для него ИМХО является избыточным и бессмысленным.
Я опираюсь на википедию и FAQ c unicode.org.
Если я чего-то не понял - разясни.
Таки это не отменяет необходимости с ними работать.GrAnD wrote:Это всего лишь из-за древности применяемых программ.Tonal wrote: Важно то, что очень многие программы на нём обламываются.
Новых зачастую нет и не предвидится.
Лучше приведи список программ, которые не могут работать с файлами в кодировке utf-8 без BOM.
Чеё список будет больше/весомей для народа?
Вот пусть она будет включена по умолчанию.GrAnD wrote:Возможно. Но все таки IMHO фар должен подталкивать пользователя сделать правильнее.Tonal wrote: Стало быть должна быть настройка для поведения по умолчанию.
Но нужно чтобы это поведение можно было просто поменять - объяснять по телефону глухому пользователя как править реестр довольно утомительно...
Не редакторами едиными.GrAnD wrote:опять же это связано лишь с тем что используемые вами редакторы программисты не торопятся привести в порядок относительно работы с кодировками. для правильного редактора BOM должен быть прозрачен, пользователь даже не должен знать о его существовании.Tonal wrote:Я, например, часто редактирую файлы через ssh на линухах - там BOM тоже не нужен.
Большинство утилит комм-строки работают в потоковом режиме. Это значит, что они получают на вход (stdin) поток и результат отправляют на выход (stdout).
По спецификации они не могут произвольно добавлять в поток какой-то символ или игнорировать его, ведь BOM - это тоже символ.
Т.е. такое их поведение основано на спецификации, а не на лени или произволе.
Поэтому "новое" поведение можно ждать очень долго, а работать нужно сейчас.
Буддизм Алмазного Пути, линия Карма Кагью.
-
- Posts: 263
- Joined: Thu 04 Aug, 2005 10:27
- Location: Kaliningrad
- Has thanked: 3 times
- Contact:
Re: В редакторе теперь BOM по умолчанию?
Я присоединяюсь к вопросу установки нужности BOM по-умолчанию.
Например интерпретатор PHP в упор не хочет корректно обрабатывать такие файлы.
Например интерпретатор PHP в упор не хочет корректно обрабатывать такие файлы.
Re: В редакторе теперь BOM по умолчанию?
Я хотел присоединиться с тем же аргументом. Сколько раз уже людям приходилось объяснять людям откуда берётся ошибка «Cannot modify header information - headers already sent» и как её исправить.Kirill wrote:Я присоединяюсь к вопросу установки нужности BOM по-умолчанию.
Например интерпретатор PHP в упор не хочет корректно обрабатывать такие файлы.
Однако, если добавление BOM — это в общем случае правильное поведение, то проблема с PHP — наша частная проблема.
Ну придётся теперь при создании сохранять всё без сигнатуры, и ладно — я лично привыкну. Главное, чтоб при редактировании ничего не добавлялось.
Re: В редакторе теперь BOM по умолчанию?
Из таких частных проблем и складывается удобство использования.
Я пока не сталкивался ни с одной программой, которая бы неверно работала с файлами в кодировке utf-8 без BOM.
А вот с программами, которые обламываются при наличии BOM в файлах с кодировкой utf-8 сталкиваюсь постоянно.
Поэтому и нужен простой способ изменить поведение FAR по умолчанию в этом случае.
Чтобы людям можно было просто объяснить какую галку убрать/поставить.
Я пока не сталкивался ни с одной программой, которая бы неверно работала с файлами в кодировке utf-8 без BOM.
А вот с программами, которые обламываются при наличии BOM в файлах с кодировкой utf-8 сталкиваюсь постоянно.
Поэтому и нужен простой способ изменить поведение FAR по умолчанию в этом случае.
Чтобы людям можно было просто объяснить какую галку убрать/поставить.
Буддизм Алмазного Пути, линия Карма Кагью.