Имя: Пароль:
1C
 
Как выключить упр.маркер UTF-8 при записи XML-файла
0 1Снег
 
25.03.09
20:58
Unicode в текстовых файлах
... Иногда в начало файла добавляют специальный символ-маркер (U+FEFF[1]), позволяющий распознать формат однозначно.
http://ru.wikipedia.org/wiki/Текстовый_файл

А как вставку этого управляющего маркера выключить при выгрузке (заказчик требование такое выставил)?
Даже когда текстовый файл создаю в формате UTF-8, все равно эти символы в файл включаются :(
1 lexa
 
25.03.09
21:01
штатно никак, это по моему не платформа а винда
2 lexa
 
25.03.09
21:04
знакомый как то написал програмулину, которая его вырезала, но куда то затерялась
3 1Снег
 
25.03.09
21:04
(2) внешней программкой?
4 lexa
 
25.03.09
21:06
ага, я искал конвертор но халявный не нашел, это се уроды веб програмеры, работающие на старых платформах и софте виноваты
по стандарту BOM должен быть
5 1Снег
 
25.03.09
21:08
Ворд кстати в XML без маркера сохраняет, так что дело в 1С 8.1
6 lexa
 
25.03.09
21:09
1с двоичные файлы не обрабатывает, я пробовал читать как текс, вырезать бом, а при сохранени в ютф он опять появлялся
7 lexa
 
25.03.09
21:09
тогда передай хмл в ворд и сохраняй им
8 nlyapich
 
25.03.09
21:10
Запиши в формате UTF8, открой принудительно в ASСI, убири эти символы и запиши в формате ASCI. Все готово в ютиэфие и без спецсимволов. )
9 1Снег
 
25.03.09
21:11
(8) Ок, счас попробую :)
10 lexa
 
25.03.09
21:11
(8) уверен что кодировка не слетит?
11 nlyapich
 
25.03.09
21:15
(10) 100% рабочая версия буржуям в SAP выгрузку именно так делал
12 lexa
 
25.03.09
21:17
(11) я об этом думал, но застремался
и кириллица нормально?
13 nlyapich
 
25.03.09
21:19
(12) угу, все замечательно отрабатывает
14 1Снег
 
25.03.09
21:21
Получилось!

Код примерно такой:

Текст = Новый ЧтениеТекста(СокрЛП(Путь)+"c.xml", КодировкаТекста.OEM);
ТекстЗапись = Новый ЗаписьТекста(СокрЛП(Путь)+"c2.xml", КодировкаТекста.OEM);
   
Стр = Текст.ПрочитатьСтроку();
ТекстЗапись.ЗаписатьСтроку(Сред(Стр, 4));
   
Пока Стр <> Неопределено Цикл
   Стр = Текст.ПрочитатьСтроку();
   ТекстЗапись.ЗаписатьСтроку(Стр);
КонецЦикла;
   
ТекстЗапись.Закрыть();