UTF8 BOM - это зло

Здесь обсуждаются проблемы мироустройства.
Abs
Posts: 32
Joined: Tue 27 Jul, 2010 12:14
Been thanked: 1 time

UTF8 BOM - это зло

Postby Abs » Thu 01 Dec, 2016 12:48

Latest post of the previous page:

SkvorBSD
Если вы считаете BOM описанием формата, информатику вам точно преподавали неадекватно. :)

User avatar
HaRT
Moderator
Posts: 7908
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 63 times
Been thanked: 94 times

UTF8 BOM - это зло

Postby HaRT » Thu 01 Dec, 2016 13:03

SkvorBSD wrote:Source of the post Пусть BOM - это описание семантики китайского и оно помещено в начало книги.
Совершенно некорректная аналогия! BOM — это не описание формата, а лишь идентификация формата среди нескольких родственных (multibyte Unicode). Т.е. описание системы не в терминах самой системы, а в терминах внешней „мета-системы“. Если угодна лингвистическая аналогия, извольте: есть книга на письменности деванагари, но без знания соответствующих языков непонятно, который использован: хинди, непали или, скажем, вообще санскрит. В таком случае BOM — это указание (понятное даже тем, кто не знает тех языков), на каком языке книга.
Фар есть инструмент, а не нянька. © 2009 DrKnS

SkvorBSD
Posts: 7
Joined: Mon 28 Nov, 2016 14:05

UTF8 BOM - это зло

Postby SkvorBSD » Thu 01 Dec, 2016 13:45

HaRT wrote:BOM — это не описание формата, а лишь идентификация формата среди нескольких родственных (multibyte Unicode).
-тут уже надо с терминологией разбираться. Но если BOM является идентификатором варианта, значит это часть формата который обобщает несколько вариантов Unicode. А с учётом факультативности - это точно становится злом.

BOM, практически, используется только при передаче текста между разными платформами. Но разные платформы невозможно соединить без адаптера. Имеем вопрос - почему на адаптер не возлагается перекодировка данных текстовой природы, хотя все остальные данные подвергаются полноценной перекодировке. Возникает бредовая ситуация, когда в адаптере на стадии передачи текста "отключается" перекодировка и данные передаются в raw. А уже конечный пользователь должен "знать" raw-формат источника данных и перекодировать в формат своей платформы.

Итого - BOM бывает нужным редко и только когда кто-то сдуру отключил работу уже существующей функции. Костыль, думаю, растёт от того, что Unicode неразумно упоминает порядок следования байтов и количество битов в байте.
Last edited by SkvorBSD on Fri 02 Dec, 2016 08:17, edited 1 time in total.

User avatar
DrKnS
Posts: 4458
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 105 times
Contact:

UTF8 BOM - это зло

Postby DrKnS » Thu 01 Dec, 2016 19:17

SkvorBSD wrote:Source of the post Описание формата внутри данных в принципе является абсурдом.

Какой прекрасный тред :popcorn:

Ходят слухи, что чуть ли не любой бинарный файл содержит описание формата. Хотелось бы услышать мнение экспертов.
О всяких #!/bin/sh внутри шелл-скриптов тоже можно.

Smitis
Posts: 1430
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

UTF8 BOM - это зло

Postby Smitis » Thu 01 Dec, 2016 21:05

SkvorBSD wrote:Но разные платформы невозможно соединить без адаптера. Возникает вопрос - почему на адаптер не возлагается перекодировка данных текстовой природы, хотя все остальные данные подвергаются полноценной перекодировке.
Т.е., Вы утверждаете, что exe-файл, записанный на флешку, после того, как флешка будет вставлена в Мак, чудесным образом перекодируется в формат исполняемого файла Мака? И более того, такие же чудесные превращения должны происходить и с текстовыми файлами, например, меняться байты местами в юникодном тексте?

DrKnS wrote:Ходят слухи, что чуть ли не любой бинарный файл содержит описание формата. Хотелось бы услышать мнение экспертов.
О всяких #!/bin/sh внутри шелл-скриптов тоже можно.
Зло проникло везде :)

Непонятно, что в рамках этой концепции о вреде форматирования делать с отформатированными исходными текстами? Отказаться от отступов?
Last edited by Smitis on Thu 01 Dec, 2016 21:06, edited 1 time in total.
Разум когда-нибудь победит.

SkvorBSD
Posts: 7
Joined: Mon 28 Nov, 2016 14:05

UTF8 BOM - это зло

Postby SkvorBSD » Fri 02 Dec, 2016 08:58

DrKnS wrote:Source of the post

Обсуждение разумности/костыльности шабанга следует вынести в отдельную тему, т.к. не относится к проблематике передачи данных.
Можете озаглавить холивар "Шабанг - очарование скриптового единообразия или синтаксическое извращение языков!?"
И такида, шабанг не переносим без адаптера в COMMAND.COM
Smitis wrote:Source of the post

-Нет. Я утверждаю, что ваши манипуляции с флешкой не являются соединением платформ. Если платформы в некоторых аспектах совпадают, то некоторые объекты будут переносимы, некоторые - окажутся мусором. Но для полноценного соединения различных платформ адаптер необходим. Где будет этот адаптер и какова его форма, уже рояля не играет.

Smitis
Posts: 1430
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

UTF8 BOM - это зло

Postby Smitis » Sat 03 Dec, 2016 12:15

Ну понятно, осталось изобрести некое магическое устройство под названием "адаптер" (пусть даже софтварный), который волшебным образом будет угадывать форматы файлов и не менее волшебным способом их превращать в что-то другое.

И, вообще, если уж придираться, то
Описание формата внутри данных в принципе является абсурдом.
в данном случае к BOM никакого отношения не имеет. Смотрите сами - сначала идут байты BOM (в вашей терминологии "формат"), затем собственно текст ("данные"). Всё раздельно. Вот если бы этот BOM был бы "размазан" по тексту, тогда да. А так - нет.
Разум когда-нибудь победит.

User avatar
techie
Posts: 654
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 20 times
Been thanked: 2 times

UTF8 BOM - это зло

Postby techie » Tue 18 Apr, 2017 04:34

Всё было бы хорошо с вашим бомом, если бы он шёл заголовком в форматах файлов, где он предусмотрен спекой. .exe там или .xls. Так нет же - Far добавляет его куда не попадя. Я не против этого бома, но это маргинальная фича для маргинального круга пользователей маргинального файл менеджера.

Не должен Far быть здесь таким умным. Можете сравнить это с третьим питоном, который открывает текстовые файлы.. в какой кодировке? В utf-8? А вот фиг вам - в системной. Поэтому если у вас cp1251, а там на самом деле utf-8, то будет бам.

Я понимаю откуда ноги растут у фаровцев - автодетект всего и вся в редакторе - великая вещь, но когда редактор начинает незаметно пакостить бомами - это уже западлостроение.
Some ancient PlugRinG schema.

2useven10
Posts: 2876
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 76 times

UTF8 BOM - это зло

Postby 2useven10 » Tue 18 Apr, 2017 07:31

techie, из imbicellus club вы уже выписаны, но всё ещё тянет...

DV
Posts: 280
Joined: Mon 07 Aug, 2006 08:23
Has thanked: 1 time
Been thanked: 2 times

UTF8 BOM - это зло

Postby DV » Tue 18 Apr, 2017 14:19

Господа! Всем противникам BOM советую внимательно прочитать https://en.wikipedia.org/wiki/Byte_order_mark#UTF-8
В частности, заострю ваше внимание на следующих двух пунктах:
* "Not using a BOM allows text to be backwards-compatible with some software that is not Unicode-aware".
В общем случае эта фраза справедлива исключительно для символов с кодами в диапазоне от 0 до 127 (т.е. ASCII). Наличие же символов вне этого диапазона приводит к проблеме определения кодировки этих символов. (Поясняю примером: однобайтные символы с кодами от 128 до 255 выглядят абсолютно по разному в зависимости от региональной настройки: то, что для нас кириллица, для европейцев будет выглядеть какими-то умляутами, для греков - греческими буквами, и т.д.)
* "On the other hand, without a BOM, heuristic analysis is required to determine what character encoding a file is using".
Перечитайте ещё раз: "heuristic analysis is required". Вот поэтому лучше иметь BOM - для однозначности и для скорости. Замечание "In general, UTF-8 is easily detected" на практике означает вот что: если у вас есть текстовый файл размером, скажем, 1 МБ, в котором первые, скажем, 512 кБ содержат исключительно ASCII-символы, и только потом появляются многобайтные символы UTF-8, то большинство редакторов определят этот файл как ANSI, поскольку из соображений быстродействия heuristic analysis обычно ограничивается несколькими килобайтами в начале файла. В то время как наличие UTF-8 BOM мгновенно (!) подсказало бы, что это файл с символами в кодировке UTF-8.

Smitis
Posts: 1430
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 9 times
Been thanked: 21 times
Contact:

UTF8 BOM - это зло

Postby Smitis » Tue 18 Apr, 2017 18:04

Сплошная демагогия какая-то. О каких форматах файлов вообще идёт речь? О текстовых? Нет там никакого формата и никогда не было.
Разум когда-нибудь победит.

User avatar
DrKnS
Posts: 4458
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 2 times
Been thanked: 105 times
Contact:

UTF8 BOM - это зло

Postby DrKnS » Tue 18 Apr, 2017 19:12

DV wrote:Source of the post большинство редакторов определят этот файл как ANSI

Поэтому лучшие собаководы рекомендуют тупо все по умолчанию трактовать как utf-8, а вот если в процессе декодирования что-то пошло не так - включать интеллект.

2useven10
Posts: 2876
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 2 times
Been thanked: 76 times

UTF8 BOM - это зло

Postby 2useven10 » Tue 18 Apr, 2017 19:34

DrKnS wrote:Source of the post рекомендуют тупо все по умолчанию трактовать как utf-8

Если сделать кодировкой по-умолчанию UTF-8 так и будет.
DrKnS wrote:Source of the post если в процессе декодирования что-то пошло не так - включать интеллект.

А вот так или не так мы обычно действительно решаем по нескольким килобайтам.
А 'что-то не так' случается позже, когда интеллект уже не включается, хотя imho всё это некритично,
легко разруливается в ручном режиме и для этого раздела слишком скучно.

User avatar
techie
Posts: 654
Joined: Mon 03 Oct, 2005 22:42
Has thanked: 20 times
Been thanked: 2 times

UTF8 BOM - это зло

Postby techie » Fri 21 Apr, 2017 07:19

2useven10 wrote:Source of the post techie, из imbicellus club вы уже выписаны, но всё ещё тянет...


Мне доставит удовольствие встретить там собрата по разуму с бесплатным билетом на поезд рейса 2.3.2 =/
Some ancient PlugRinG schema.


Return to “О тщете всего сущего”

Who is online

Users browsing this forum: No registered users and 1 guest