мой юникс не понимает этих смешных символов

Все, что вы хотели знать о программизме, но боялись спросить.
Ответить
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

мой юникс не понимает этих смешных символов

Сообщение vg »

... заявил один кекс из одной крутой конторы в части BOM в xml.
Ладно... убрали маркер. Его сервер радостно пока кушает наши xml. Но вот я засомневался... а как у юниксов в части переваривания &_amp; и подобных спец символов. У MS - это на ура и как должно быть. А у юникса (вспоминая пример с "непониманием" BOM)?

ПС. Вопрос на прямую задам ему позже. Просто инетересно, что думают юниксоиды. Может просто кодировать "&", равно как и "'" и т.д. в формате &#bla-bla. Вопрос имеет место быть т.к. как показало несложное исследование клиентское ПО той супер конторы может чеканить (если это не ошибка моего исследования) xml со спец символами напрямую в значениях атрибутов и тегов (разумеется IE пюлюётся).
Аватара пользователя
Marmot
Графоман
Сообщения: 39279
Зарегистрирован: 17 фев 2003, 17:58
Откуда: Caulfeild
Контактная информация:

Сообщение Marmot »

А чем вам не нравится UTF-8 ? и не надо никаких BOM-ов.
И кстати, вопрос в целом некорректен: UNIX vs Windows, надо говорить о конкретных парсерах.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Marmot писал(а):А чем вам не нравится UTF-8 ? и не надо никаких BOM-ов.
И кстати, вопрос в целом некорректен: UNIX vs Windows, надо говорить о конкретных парсерах.
Вопрос про транспорт UTF-8 символов Unicode-а мы как-то обсуждали здесь. Действительно, поскольку UTF-8 поток представляет последовательности байт, то BOM не нужен, как таковой (с точки зрения дальнейшего преобразования символа UTF-8 в символ набора UCS). Однако есть две причины не упускать BOM из виду -

1) существуют высокоуровневые протоколы, которые используют BOM в начале потока, как сигнатуру, что это поток UTF (и какой к тому же UTF-?).

http://www.unicode.org/faq/utf_bom.html
Bytes Encoding Form
00 00 FE FF UTF-32, big-endian
FF FE 00 00 UTF-32, little-endian
FE FF UTF-16, big-endian
FF FE UTF-16, little-endian
EF BB BF UTF-8

Из той же приблизительно оперы http://msdn2.microsoft.com/en-us/librar ... amble.aspx

2) Вопрос не только в том, чтобы до парсиния помочь ПО определить, что за поток, но и в том, чтобы прикладное ПО получив документ не приняло бы BOM за данные. Не только Юниксовые программы но и Windows тоже обламывался на этом (http://support.microsoft.com/default.as ... -us;301623).

ПС. Это как в транспортных протоколах - если одна из сторон не понимает расширенных опций передачи данных, то соединение не должно ломаться. Здесь же, если принимающая сторона и не обрабатывает BOM, то, по крайней мере, она не должна отказываться принимать данные. С другой стороны посылающая сторона не должна делать предположений о том, обрабатывает, или нет приёмник BOM. Могут встретиться и такие и другие.

ППС. Microsoftowskie объекты DOM используют BOM по умолчанию, хотя, можно и отключить.
vg
Маньяк
Сообщения: 2803
Зарегистрирован: 29 май 2003, 22:29
Откуда: Магадан - Миссиссага

Сообщение vg »

Да.. Забыл сказать. Вы как всегда достаточно кратко и правильно там всё подметили. Спасибо за мнение.
Ответить