GrAnD wrote:Tonal wrote:На вскидку: Delphi 7, Borland C++ Biulder 6
Посмотрите на год выпуска этих компиляторов
Если в 1993 году в дос использовалась кодировка 866 ведь это же не значит что надо сейчас все кодировать в ней
Эти компиляторы ждут кодировку 1251 на русской системе поэтому я не совсем понимаю причем тут utf
Эти компиляторы не "ждут кодировку 1251" они обрабатывают исходник как 8и битный текст.
И BOM в начале файла приведёт в синтаксической ошибке, а вот в комментариях и строках могут быть любые последовательности байт.
Да и зачем мне смотреть на их год выпуска если мне нужно поддерживать проекты, которые на них работают?
Ещё на Borland C++ 5.02 есть проекты...
А вот денег на перевод этого добра под новьё никто не даст.
GrAnD wrote:Tonal wrote:
python 2.5
не уверен что не поддерживает, надо проверить
Натыкался.
Попробовал обучить пользователя по телефону, что в блокноте можно выбрать сохранение без BOM, но потом плюнул, и научил запускать IDLE.
GrAnD wrote:Tonal wrote:
mingw gcc
Обманываете
Действительно, mingw32 v 4.4.0 сожрал.
А вот mingw32-make (наипоследний GNU Make 3.81) сказал:
Code: Select all
mingw32-make: *** No rule to make target `echo', needed by `п»їall'. Stop.
Т.е. он воспринимает BOM как символы.
Вот вывод 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
Остальные утилиты из набора mingw/msys проверять лениво, но почему-то кажется что и в них не лучше...
GrAnD wrote:
Я как человек которому приходится редактировать файлы на нескольких языках ожидал бы чтобы редакторы открывали их в правильной кодировке, поэтому без BOM обойтись не могу, иначе редакторы бы открывали файлы как попало, особенно это касается utf-8.
В python-е по стандарту в первой или второй строке скрипта должна указываться кодировка таким образом:
Этот же формат понимают большинство *nix-овских редакторов.
В XML кодировка тоже указывается в заголовке.
BOM никак не решает проблему кодировок.
GrAnD wrote:Tonal wrote:
Причём т.к. к utf-8 не применимо понятие порядок байт, то и BOM для него ИМХО является избыточным и бессмысленным.
Вы не совсем до конца поняли назначение BOM
Насколько я понимаю, BOM для utf-8 может использоваться только как необязательная сигнатура файла.
Я опираюсь на
википедию и
FAQ c unicode.org.
Если я чего-то не понял - разясни.
GrAnD wrote:Tonal wrote:
Важно то, что очень многие программы на нём обламываются.
Это всего лишь из-за древности применяемых программ.
Таки это не отменяет необходимости с ними работать.
Новых зачастую нет и не предвидится.
Лучше приведи список программ, которые не могут работать с файлами в кодировке utf-8 без BOM.
Чеё список будет больше/весомей для народа?
GrAnD wrote:Tonal wrote:
Стало быть должна быть настройка для поведения по умолчанию.
Возможно. Но все таки IMHO фар должен подталкивать пользователя сделать правильнее.
Вот пусть она будет включена по умолчанию.
Но нужно чтобы это поведение можно было просто поменять - объяснять по телефону глухому пользователя как править реестр довольно утомительно...
GrAnD wrote:Tonal wrote:Я, например, часто редактирую файлы через ssh на линухах - там BOM тоже не нужен.
опять же это связано лишь с тем что используемые вами редакторы программисты не торопятся привести в порядок относительно работы с кодировками. для правильного редактора BOM должен быть прозрачен, пользователь даже не должен знать о его существовании.
Не редакторами едиными.

Большинство утилит комм-строки работают в потоковом режиме. Это значит, что они получают на вход (stdin) поток и результат отправляют на выход (stdout).
По спецификации они не могут произвольно добавлять в поток какой-то символ или игнорировать его, ведь BOM -
это тоже символ.
Т.е. такое их поведение основано на спецификации, а не на лени или произволе.
Поэтому "новое" поведение можно ждать очень долго, а работать нужно сейчас.
Буддизм Алмазного Пути, линия Карма Кагью.