Имя: Пароль:
1C
1С v8
Можно-ли сохранить текстовый документ без BOM записи?
0 lanc2233
 
01.10.13
11:45
Текст = Новый ТекстовыйДокумент;
Текст.ДобавитьСтроку("ххх");
Текст.Записать(ИмяФайла, КодировкаТекста.UTF8);

При записи вставляет в файл первые три символа с обозначением кодировки (BOM). Можно как-то сохранить без нее, или убрать ее?
1 Torquader
 
02.10.13
00:49
Писать не через текстовый документ, или ставить кодировку Win-1251 и собирать UTF-8 вручную.
2 ДенисЧ
 
02.10.13
01:19
ютф без бома? Не, сынок, это фантастика...
3 oleg_km
 
02.10.13
10:05
я убираю, используя ADODB.Stream. Загоняю файл в массив, отрезаю первые символы. Можно сделать для больших файлов, тогда нужно перегонять порцайками, но мне пока не нужно
4 Torquader
 
03.10.13
00:14
Scripting.FileSystemObject и его объект TextStream пишет побайтово - заставить писать Utf-8 без проблем, только нужно "прокладку" на VbScript нарисовать, чтобы можно было использовать однобайтовые версии символов.
5 Asmody
 
03.10.13
00:25
6 Torquader
 
03.10.13
00:36
(5) По сути - создать пустой файл и его же дописать.
Это называется "костыль на костыле".
7 Asmody
 
03.10.13
00:40
(6) это называется "прочитай еще раз". Нужно просто указать другую кодировку при записи файла
8 Torquader
 
03.10.13
00:50
(7) Другая кодировка - это не совсем то - при записи мы получим не тот набор символов.
Там изначально создаётся пустой файл (какая при этом кодировка - неважно - главное, что длина файла 0).
Потом мы его дописываем уже в нашей кодировке.
9 Asmody
 
03.10.13
00:56
http://en.wikipedia.org/wiki/CESU-8 полностью соответствует utf-8 в одно- и двухбайтовых символах. Для кириллицы некритично
Программист всегда исправляет последнюю ошибку.