Запись текстового файла - служебные символы в начале файла. Как убрать? #427961


#0 by Stasinus
Задача - записываю текстовый файл на ФТП в кодировке UTF8. Проблема - 1С-ка дописывает в начале файла 3 служебных символа. Если открывать файл, скажем, блокнотом, их нет. Если же делать VIEW тем же Far'ом - они есть. Этот файл в дальнейшем открывается на линуксовой машине перлом, там они ессно тоже есть. Вопрос - как заставить 1с-ку НЕ ПИСАТЬ эти символы?
#1 by Rie
А надо ли их убирать?
#2 by Дуб
инициируй запись через VBS
#3 by Rie
+ Это сигнатура, EF BB BF, используется для определения порядка байтов.
#4 by Stasinus
Надо. Человек, отвечающий за линуксовую систему и перловый скрипт, открывающий эти файлы, ругается. Говорит "убирай нафик". Да, но он говорит мол они деприкейтэд. Мол нафик не нужны уже. Не знаю, что это :-)
#5 by Rie
Deprecated, конечно. Не нужны - запиши файл, а потом вырежи их.
#6 by shuhard
раз надо - код покажи, чем пишешь
#7 by eklmn
ему надо, пусть и обрезает
#8 by Stasinus
Я еще не пробовал, но уверен на 99,9%, что если этот файл опять таки открывать 1с-кой, то этих символов она не увидит. ФайлПередачи = Новый ТекстовыйДокумент; ФайлПередачи.УстановитьТипФайла("UTF-8"); (хоть и по умолчанию UTF-8, на всяк. случай устанавливаю) ... ДокументПередачиКоманды.ДобавитьСтроку(СтрокаКоманды); ... ДокументПередачиКоманды.Записать(ПутьФайла,КодировкаТекста.UTF8); (тоже пробовал указывать кодировку тут, может поможет - не помогло)
#9 by Stasinus
Точнее так: ФайлПередачи = Новый ТекстовыйДокумент; ФайлПередачи.УстановитьТипФайла("UTF-8"); (хоть и по умолчанию UTF-8, на всяк. случай устанавливаю) ... ... ФайлПередачи.Записать(ПутьФайла,КодировкаТекста.UTF8); (тоже пробовал указывать кодировку тут, может поможет - не помогло)
#10 by Rie
Конечно же, не увидит. А зачем их _видеть_? Записанный файл прочитать чем-либо (той же 1С-кой) и записать без первых 3 символов.
#11 by Stasinus
То ли лыжи не едут... Либо я не понимаю, что ты имеешь ввиду. Ты предлагаешь открыть файл, вырезать эти 3 символа и записать результат опять в файл. Если я буду открывать файл тем же ТекстовымДокументом, то как я вырежу эти символы, если они для 1с-ки не видны? Если буду записывать тем же ТекстовымДокументом, 1с-ка опять их вставит. Или ты предлагаешь каким-то другим механизмом файл читать/записывать?
#12 by Rie
Разумеется, другим.
#13 by Kom-off
Можно попробовать "ЗаписьТекста".
#14 by Stasinus
ЗаписьТекста выдает тот же результат
#15 by Kom-off
Кодировка обязательно должна быть UTF-8 ?
#16 by Stasinus
Да, обязательно. Там передаются в том числе кириллические символы.
#17 by Kom-off
А попробовать другие кодировки кириллическими символами, например: KOI8-r, если не ошибаюсь CP866, windows-1251?
#18 by Rie
Твоему человеку на линуксовой машине убрать эти 3 байта - как два пальца об асфальт. Но ему лень. А тебе? Не пытайся записывать этот текст в UTF-8 без этих 3 байтов. Запиши файл, потом скопируй его куда надо без этих первых 3 символов. Чем угодно.
#19 by Stasinus
(to All) Всем спасибо за ответы. Решили действительно не геммороиться, эти символы будут убираться перловым скриптом.
#20 by H A D G E H O G s
#21 by H A D G E H O G s
"Если что - то хочется, но нельзя - то немного можно. Но не со мной!" © Мой лучший универский друг, Миколо.
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С