|
Как сменить кодировку в COMОбъект("Microsoft.XMLHTTP") | ☑ | ||
|---|---|---|---|---|
|
0
oleg_prg
15.04.14
✎
18:38
|
Добрый день, уважаемые форумчане. Есть функция которая сохраняет на диск HTML страницу. Но есть проблема, русский шрифт сохраняется в непонятной кодировке, подскажите пожалуйста как решить?
Функция вызывается например вот так WebToFile("http://mail.ru", "D:\tester.html") Далее сама функция Функция WebToFile(Адрес, Файл) Экспорт //Отправка стандартного запроса Попытка // создадим объект XMLHttpRequest олеХМЛ = новый COMОбъект("Microsoft.XMLHTTP"); Исключение Сообщить("Ошибка создания Microsoft.XMLHTTP"); Возврат null; КонецПопытки; // иницируем его типом запроса и нужным нам URL олеХМЛ.Open("GET", Адрес, 0); //Сообщить(Адрес); Попытка // отправим запрос для обработки серверу олеХМЛ.Send(); Исключение Сообщить("Ошибка доступа!!! SEND объекта Microsoft.XMLHTTP"); Возврат null; КонецПопытки; Попытка // создадим "поток" через ADODDB для работы с данными олеАДО = новый COMОбъект("ADODB.Stream"); Исключение Сообщить("Ошибка создания ADODB.Stream"); Возврат null; КонецПопытки; // зададим тип и режим потока олеАДО.Mode = 3; олеАДО.Type = 1; // откроем его олеАДО.Open(); Попытка // создадим объект для управления скриптами олеШелл = новый COMОбъект("MSScriptControl.ScriptControl"); Исключение Сообщить("Ошибка создания MSScriptControl.ScriptControl"); Возврат null; КонецПопытки; // установим язык сценариев олеШелл.Language = "vbscript"; // добавим созданные объекты олеШелл.AddObject("oleADO", олеАДО); олеШелл.AddObject("oleXML", олеХМЛ); // с помощью скрипта запишем в поток ADO данные из // объекта XMLHttpRequest // то есть содержимое страницы олеШелл.Eval("oleADO.Write(oleXML.ResponseBody)"); // запишем данные во временный файл //Сообщить(">>>"+СокрЛП(Константы.ПутьКОтчетамPHP.Получить())+ИмяПапки+"\"+ИмяФайла); олеАДО.SaveToFile(Файл, 2); //Сообщить(СокрЛП(Константы.ПутьКОтчетамPHP.Получить())+ИмяПапки+"\"+ИмяФайла); // закроем данный поток олеАДО.Close(); КонецФункции Заранее спасибо! |
|||
|
1
Зойч
15.04.14
✎
19:32
|
в 1с и штатные методы для этого есть
|
|||
|
2
oleg_prg
15.04.14
✎
19:46
|
Решил
Стер функцию и написал 2 строчки )))) Соединение = Новый HTTPСоединение("geocode-maps.yandex.ru/1.x/?geocode=30.210765 55.163579&kind=district",,,,,Ложь); Соединение.Получить("","D:\1.txt"); |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |