Имя: Пароль:
1C
1C 7.7
v7: Сохранить в UTF-8 без BOM
0 Бамагите
 
20.09.12
20:55
нашел на форуме что делать можно так:

Stream = CreateObject("Adodb.Stream");
Stream.Charset="utf-8";
Stream.Type = 2;
Stream.Mode= 3;
Stream.Open();

но при таком способе в начало файла добавляются эти "п»ї", будь они неладны.
Как от них избавится?
1 andrewks
 
20.09.12
20:59

     Попытка
        Файл=СоздатьОбъект("ADODB.Stream");
        Файл.Mode=3; // r/w
        Файл.Type=1; //1-Binary, 2-Text
        Файл.Open();
        Файл.LoadFromFile(ИмяФайлаДанных);
        Файл.Position=3;
        ТекстБезБОМ=СоздатьОбъект("ADODB.Stream");
        ТекстБезБОМ.Mode=3; // r/w
        ТекстБезБОМ.Type=1; //1-Binary, 2-Text
        ТекстБезБОМ.Open();
        Файл.CopyTo(ТекстБезБОМ);
        Файл.Close();
        ТекстБезБОМ.SaveToFile(ИмяФайлаДанных,2);
        ТекстБезБОМ.Close();
     Исключение
        ТекстОшибки=ОписаниеОшибки();
        Сообщить(ТекстОшибки,"!");
        Возврат;
     КонецПопытки;
2 Бамагите
 
20.09.12
22:01
Блин, неужели работает!

Сначала попробовал писать сразу в ТекстБезБОМ, но при type=1 метод  WriteText выдавал ошибку.
С вашей подсказкой получилось обычный текст переписать в юникод без бом. Спасибо!
3 Fragster
 
гуру
21.09.12
08:22
это же заляпуха
4 andrewks
 
21.09.12
08:25
(3) показывай свою незалипуху
5 Fragster
 
гуру
21.09.12
08:50
(4) 1. не использовать программы, которые не понимают нормально ютф-8
2. не использовать ютф-8
6 andrewks
 
21.09.12
08:56
(5) твоя помощь просто неоценима
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn