Сохранение данных в файл
Здравствуйте. Теперь у меня возникла вот какая проблема: при сохранении русского текста в файл, портятся буквы. А именно, отрезаны старшие байты. Например "р" - U+0440, а у меня получается 0040. Как я понимаю, необходио прибавить 0х400. Как это существить? Если можно, то напишите кусочек кода.
Так ведь в файл пишутся байты, а вы даёте на ввод Unicode-строку. Вы в UTF-8 писать хотите? Думаю, что тут надо тоже воспользоваться nsIScriptableUnicodeConverter. Сейчас попробую сообразить пример...
var data = "\u0442\u0435\u0441\u0442"; var converter = Components.classes['@mozilla.org/intl/scriptableunicodeconverter'] .createInstance(Components.interfaces.nsIScriptableUnicodeConverter); converter.charset = 'utf8'; data = converter.ConvertFromUnicode(data); var file = Components.classes['@mozilla.org/file/local;1'] .createInstance(Components.interfaces.nsILocalFile); file.initWithPath('c:\\test'); var stream = Components.classes['@mozilla.org/network/file-output-stream;1'] .createInstance(Components.interfaces.nsIFileOutputStream); stream.init(file, 0x02 | 0x08, 0666, 0); stream.write(data, data.length); stream.close();Вместо utf8 можно указать и windows-1251, конечно...