Проблема при чтении текстового файла в Adobe AIR - PullRequest
1 голос
/ 20 февраля 2009

Я работал над приложением, запущенным в браузере, и я хотел бы попытаться преобразовать его в 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-дерьмо), но я не могу найти другое чтение, которое действительно сработало.

Может ли кто-нибудь дать мне подсказку, чтобы получить одинаковые данные в обоих случаях?

1 Ответ

1 голос
/ 20 февраля 2009

readUTFBytes () ожидает чтения символов в кодировке UTF-8. Можете ли вы проверить, является ли ваш оригинальный файл UTF-8? Хороший текстовый редактор может помочь.

...