Я работал над приложением, запущенным в браузере, и я хотел бы попытаться преобразовать его в AIR.
В моем веб-приложении после загрузки документа я загружаю текстовый файл в строку с помощью jquery.
var info;
$.get('media/info.txt',function(data) {
info=data;
alert("the info is "+info.length+" bytes long");
});
В моем приложении AIR после локальной загрузки документа я загружаю тот же текстовый файл (но здесь размещенный локально в приложении AIR) в строку с API-интерфейсом файла AIR.
var info;
var file=air.File.applicationDirectory.resolvePath("media/info.txt");
var filestream=new air.FileStream();
filestream.addEventListener(air.Event.COMPLETE, function() {
info=filestream.readUTFBytes(filestream.bytesAvailable);
alert("the info is "+info.length+" bytes long");
});
filestream.openAsync(file, air.FileMode.READ);
Два приведенных выше предупреждения дают мне два разных значения для одного и того же файла , в то время как мое приложение хорошо работает в браузере, информация AIR больше и, кажется, содержит некоторые не отслеживаемые символы, которые сломали мое приложение!
Я догадался, что это может быть связано с методом чтения, используемым в AIR (UTF-дерьмо), но я не могу найти другое чтение, которое действительно сработало.
Может ли кто-нибудь дать мне подсказку, чтобы получить одинаковые данные в обоих случаях?