UTF8 BOM - это зло
UTF8 BOM - это зло
И включать его по умолчанию — неправильно.
Почему зло? Да потому что не нужен он ровно вообще никому: при угадывании кодировки файла, сохраненного в "UTF-8 без BOM", угадывалка все равно обязана работать правильно. Если там есть не-ASCII то это вообще несложно, а если только ASCII, то любой современный редактор должен по-любому выбирать UTF-8. В результате: что нам дает наличие BOM? Да ничего. Только ломает .bat файлы и другие криворукие программы. На многих языках легко написать читалку файла в UTF-8 которая неправильно читает BOM (считает его обычным codepoint'ом).
Так что зачем он добавляется по-умолчанию мне непонятно. Ради какой-то теоретической правильности? Ну слава богу хоть отключается этот дефолт, за что большое спасибо.
Почему зло? Да потому что не нужен он ровно вообще никому: при угадывании кодировки файла, сохраненного в "UTF-8 без BOM", угадывалка все равно обязана работать правильно. Если там есть не-ASCII то это вообще несложно, а если только ASCII, то любой современный редактор должен по-любому выбирать UTF-8. В результате: что нам дает наличие BOM? Да ничего. Только ломает .bat файлы и другие криворукие программы. На многих языках легко написать читалку файла в UTF-8 которая неправильно читает BOM (считает его обычным codepoint'ом).
Так что зачем он добавляется по-умолчанию мне непонятно. Ради какой-то теоретической правильности? Ну слава богу хоть отключается этот дефолт, за что большое спасибо.
- John Doe
- Бюрократ
- Posts: 13851
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 428 times
- Contact:
Re: UTF8 BOM - это зло
Интересное мнение. Но нет, я не соглашусь.romkyns wrote:Если там [...] только ASCII, то любой современный редактор должен по-любому выбирать UTF-8.
Это что-то доказывает?romkyns wrote:На многих языках легко написать читалку файла в UTF-8 которая неправильно читает BOM (считает его обычным codepoint'ом).
Re: UTF8 BOM - это зло
Ну что ж, хорошо что наш инструмент настраивается и под вас, и под меня. Ради интереса, какая у вас выбирается кодировка, если в файле только ASCII, и почему?John Doe wrote:Интересное мнение. Но нет, я не соглашусь.romkyns wrote:Если там [...] только ASCII, то любой современный редактор должен по-любому выбирать UTF-8.
Если бы вы согласились с первым пунктом, то это бы дало один повод выключить BOM. Если же вы хотите UTF-8 только в файлах, специально помеченных как таковые, то конечно это ничего не доказывает (но все-таки любопытно, зачем). И третий вариант, возможно вы хотите использовать BOM именно ради корректировки порядка байтов?John Doe wrote:Это что-то доказывает?romkyns wrote:На многих языках легко написать читалку файла в UTF-8 которая неправильно читает BOM (считает его обычным codepoint'ом).
UTF8 BOM - это зло
>copy con имя_файла[ENTER]содержание_файла[F6 или CTRL+Z][ENTER]
Если содержание_файла=ничего, то размер_файла=0.
Зачем вообще файл средствами FAR(?) - никогда не понимал.
Если содержание_файла=ничего, то размер_файла=0.
Зачем вообще файл средствами FAR(?) - никогда не понимал.
Не использовать BOM для UTF-8
Шпедивикии:
Т.е. говоря русским языком, не рекомендуется вставлять BOM в UTF-8 (65001) контент.
(с) https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8The Unicode Standard permits the BOM in UTF-8,[2] but does not require or recommend its use.[3]
Т.е. говоря русским языком, не рекомендуется вставлять BOM в UTF-8 (65001) контент.
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Не использовать BOM для UTF-8
вы передёргиваете. отсутствие рекомендации и не рекомендуется — это разные вещи.techie wrote:Т.е. говоря русским языком, не рекомендуется вставлять BOM в UTF-8 (65001) контент.
UTF8 BOM - это зло
Если рекомендация отсутствует в стандарте, который вообще-то создаётся для вывода людей из тупика неоднозначности, значит на то есть причины. По-моему, весьма понятно и если и есть передёргивание, то вполне себе в рамках.zg wrote:вы передёргиваете. отсутствие рекомендации и не рекомендуется — это разные вещи.techie wrote:Т.е. говоря русским языком, не рекомендуется вставлять BOM в UTF-8 (65001) контент.
UTF8 BOM - это зло
Кароч, если не написано "по возможности сувать везде", значит не надо так делать. А Far делает, и изменить это не позволяет, если ты не харкорный пользователь.zg wrote:демагогия.techie wrote:весьма понятно
UTF8 BOM - это зло
Т.е. если ты догадался сделать Save As (Shift F2) - значит прощай imbicellus club и welcome to hardcore club?
БОМ используется приложениями не от хотелок авторов, но из-за третъесторонних (чаще всего третъесторонних) библиотек обработки текста. На википедии, конечно, могут писать что угодно, но многие распрастранённые библиотеки любят БОМ уже много-много лет.
Пример: в subtitles к Media Player Classic - вы можете хоть до посинения указывать формат UTF-8. Но оно с вами согласится только когда там появится BOM. И, я уверен, это была не прихоть авторов mpc.
БОМ используется приложениями не от хотелок авторов, но из-за третъесторонних (чаще всего третъесторонних) библиотек обработки текста. На википедии, конечно, могут писать что угодно, но многие распрастранённые библиотеки любят БОМ уже много-много лет.
Пример: в subtitles к Media Player Classic - вы можете хоть до посинения указывать формат UTF-8. Но оно с вами согласится только когда там появится BOM. И, я уверен, это была не прихоть авторов mpc.