Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.09.2014, 09:29
Аватар для maternik
Аспирант
Отправить личное сообщение для maternik Посмотреть профиль Найти все сообщения от maternik
 
Регистрация: 15.10.2013
Сообщений: 31

Запись файла utf-8 через ActiveXObject("ADODB.Stream")
Привет, ребят! У меня небольшая программка для 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();
}

Последний раз редактировалось maternik, 08.09.2014 в 09:32.
Ответить с цитированием
  #2 (permalink)  
Старый 08.09.2014, 10:22
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,501

Иной способ записи - кодировка в utf8 с помощью js и запись через fso строки как бинарных данных.
__________________
29375, 35
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Асинхронная отправка файла через jQuery InviS jQuery 3 23.04.2013 22:27
Подгрузка информации через DIV с обработкой файла на стороне сервера Azartno jQuery 1 26.05.2012 15:07
Получить содержимое HTML файла через input Battleprof Events/DOM/Window 5 13.06.2011 14:51
ззапись файла через fopen по протоколу ftp PeaceCoder Серверные языки и технологии 6 06.03.2010 13:39
отправка файла через обработчик события submit starrich AJAX и COMET 2 13.08.2008 22:29