在Adobe AIR中读取文本文件时出现问题

时间:2009-02-20 17:34:54

标签: file character-encoding air

我一直在研究在浏览器中运行的应用,我想尝试将其转换为AIR。

在我的网页应用中,加载文档后,我正在使用jquery在字符串中加载文本文件。

var info;
$.get('media/info.txt',function(data) {
   info=data;
   alert("the info is "+info.length+" bytes long");
});

在我的AIR应用程序中,在本地加载文档后,我在使用AIR文件API的字符串中加载SAME文本文件(但这里使用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 shit)中使用的阅读方法有关,但我找不到其他实际有用的阅读。

有人可以给我一个提示,以便在两种情况下获得相同的数据吗?

1 个答案:

答案 0 :(得分:1)

readUTFBytes()期望读取UTF-8编码字符。你能检查你的原始文件是否是UTF-8吗?一个好的文本编辑器可能会有所帮助。