Страницы: 1
Вместо:
получаю
#@0000!!!!!!!
Это если файл в utf-8 сохранён
А если в cp1251, вообще 6 букв "ы".
создаю объект файла кодом
var file = Components.classes["@mozilla.org/file/local;1"].createInstance(Components.interfaces.nsILocalFile); file.initWithPath (fileName);
объект записи
var JS_FILE_WRITE = 0x02; var outputStream = Components.classes["@mozilla.org/network/file-output-stream;1"].createInstance(Components.interfaces.nsIFileOutputStream); outputStream.init (file, JS_FILE_WRITE, 0644, null);
Где не прав?
Отсутствует
Строки в JavaScript хранятся в unicode, не в utf-8.
Если нужна другая кодировка, надо перекодировать поток. Вот подходящий кусок кода из FileIO:
fromUnicode : function(charset, data) { try { var uniConv = Components.classes[this.suniconvCID] .createInstance(this.suniconvIID); uniConv.charset = charset; data = uniConv.ConvertFromUnicode(data); // data += uniConv.Finish(); } catch(e) { // foobar! } return data; }
Добавлено 27-02-2009 16:18:45
чёрт, забыл:
suniconvCID : '@mozilla.org/intl/scriptableunicodeconverter', suniconvIID : Components.interfaces.nsIScriptableUnicodeConverter,
прошу прощения
Время настанет, время придет...
И лис кОнкурiентов на части порвет !!!
Отсутствует
Страницы: 1