Привет, ребят! У меня небольшая программка для IE 11 онли, которая записывает x3d-разметку в файл посредством ActiveXObject. Мне принципиально важно, чтобы файл был в кодировке UTF-8, иначе разметка не отобразится в спец плеере. Конструкция ActiveXObject("Scripting.FileSystemObject") записывает не в utf-8, поэтому пытаюсь использовать ActiveXObject("ADODB.Stream"). Сам по себе он не запускается, поэтому редактирую реестр, как посоветовали когда-то кому-то
здесь на форуме. На моей машине это сработало, но на другой нет - объект ADODB.Stream не создаётся даже после правок реестра. Посоветуйте, плз, в чём может быть проблема или какой иной способ записи utf8-файла или активации ADODB.
try {var поток = new ActiveXObject("ADODB.Stream");} catch (e){
// активация объекта через реестр
var объектРеестра = new ActiveXObject('WScript.Shell');
var текущийУровень = объектРеестра.RegRead("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\CurrentLevel");
var флаги = объектРеестра.RegRead("HKLM\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\{00000566-0000-0010-8000-00AA006D2EA4}\\Compatibility Flags");
try { объектРеестра.RegWrite("HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Internet Settings\\Zones\\3\\CurrentLevel", "73728", "REG_DWORD");
объектРеестра.RegWrite("HKLM\\SOFTWARE\\Microsoft\\Internet Explorer\\ActiveX Compatibility\\{00000566-0000-0010-8000-00AA006D2EA4}\\Compatibility Flags", "0", "REG_DWORD");
} catch (e) { alert("Ошибка "+e.number+": "+e.description+"\nВозможно у вас нет прав для редактирования реестра или данной директории не существует!");return;
} alert("Был активирован объект ADODB.Stream. Пожалуйста, перезапустите браузер."); return;}
// запись файла
//var поток = new ActiveXObject("ADODB.Stream");
поток.Open();
поток.Type = 2; поток.Position = 0; поток.Charset = "utf-8"; // текстовый тип данных, сначала документа, кодировка utf-8
поток.WriteText(код);
поток.SaveToFile("файл.x3d", 2);
поток.Close();
}