BOM в сгенерированых файлах.

Despod

Новичок
BOM в сгенерированых файлах.

$dom=New DomDocument('1.0','UTF-8')
...
echo $doc->saveXML();

Задача выгрузить данные с сайта в 1с.

Собирается из базы Mysql XML, все в UTF-8. Открывается в IE, сохраняется как 1.xml и подсовывается в 1с.
1с при открытии выдает кракозябры.

в 1с выполняется процедура чтения.
вот что написано в справке по 1с

<Тип файла> (необязательный)
Тип: КодировкаТекста, Строка. Указывается кодировка текста в открываемом файле.
В случае, если параметр не задан, формат текста будет определен автоматически (если он хранится в файле с сигнатурой BOM в начале). Если автоматически определить формат файла не удается, файл будет открыт в кодировке ANSI.
в 1с этот <тип файла> конечно же не указали, надеются что он сам определит. Чесно говоря что такое BOM и что он вообще существует не знал, но так понял это несколько символов в начале файла. Теперь вопрос, как этот BOM добавить в сгенерированый XML, и почему IE при сохранении файла не добавляет этот BOM.

Вообще подскажитеб как можно посмотреть есть ли этот BOM в файле или нет, и если есть как узнать что он означает.

Заранее спасибо.
 

Despod

Новичок
Открыл в HEX-се файлик
начинается с
3C 3F 78

3С ="<"
3F ="?"
78 ="x"

Я так понимаю никакого BOM тут нет.

Как сделать так чтоб BOM появился в сохраненом файле?
 

Despod

Новичок
Ссылка на википедию это хорошо, но ответов не дает.
в качестве ВОМ должно быть "EF BB BF", но я так поимаю если я выведу эту строчку первой то XML перестанет быть валидным, а браузер выдаст просто ошибку.
В какой момент добавляется этот ВОМ, он добавляется программистом или софтом(IE) при сохранении. Все спрашивают как удалить этот ВОМ, а как он у них появился нигде не пишут.
 

SiMM

Новичок
Я так понимаю, топикстартер пофилософствовать сюда пришёл, а не проблему свою решать.
 

Despod

Новичок
Автор оригинала: SiMM
Я так понимаю, топикстартер пофилософствовать сюда пришёл, а не проблему свою решать.
Где тут философия, я задал вопрос, и пока не получил на него ответа.
 

prqyo

Новичок
2Despod
>Как сделать так чтоб BOM появился в сохраненом файле?
Ну вот в том же hex-редакторе руками три байта и добавить, если так хочется. 0xef, 0xbb, 0xbf . Три байта а не строчку. В начало.
IE никаких бомов не будет добавлять.
 

Despod

Новичок
Автор оригинала: prqyo
2Despod
>Как сделать так чтоб BOM появился в сохраненом файле?
Ну вот в том же hex-редакторе руками три байта и добавить, если так хочется. 0xef, 0xbb, 0xbf . Три байта а не строчку. В начало.
IE никаких бомов не будет добавлять.
Спасибо за совет. Я понял что там не хватает 3-х байт и что нужно их добавить. Ситуация ухудшается только тем, что такие файлики должны валится постоянно, и выгружать и загружать эти данные будут люди слабо знакомы с компьютером и людей этих слишком много. Так что ситуацию нужно решать другим способом.
1) Либо в 1с принудительно читать в UTF-8 (пока так и сделали), но это приводит к точу что возникают проблемы с обновлением 1с(кто знает что это такое,тот меня поимет)
2)Генерировать сразу XML с этим BOM.

Вопрос был даже не в том как это все загрузить(уже загрузили), а в том как это сделать правильно. Возможно есть какието функции, или какие то хедеры, которые добавляют этот BOM.

Я так понял единственный способ это ECHO (0xef, 0xbb, 0xbf) или я этим самым изобретаю велосипед?
 
Сверху