从浏览器缓存中读取数据时出现奇怪的结果
问题描述:
在我正在研究的一个实验性扩展中,我使用了一个函数来获取网页源并将其分配给一个变量。它工作得很好。但是我想改变它的工作方式并从txt文件中获取内容。从浏览器缓存中读取数据时出现奇怪的结果
我承载一个txt文件,如:http//1.2.3.4/1.txt
。
我想要的是将此txt文件的内容分配给一个变量。
功能在这里:http://jsfiddle.net/qumsm/。
(函数是不是我的。我是从另一个分机XPI,我不能现在还记得。敬意它的编码器。)
功能产生"ÿþP"
这样的结果,我不明白。
答
这是一个byte order mark,你正在看的文件似乎是使用UTF-16 LE编码。读取该数据时,您需要使用nsIConverterInputStream而不是nsIScriptableInputStream
,并指定要从中转换的正确编码。 nsIScriptableInputStream
仅在读取ANSI数据时才有用,而不是Unicode。请参阅code example on MDN。
你想从浏览器缓存中提取数据 - 那么为什么你不说让人们从你的代码中猜出来呢? –
我很抱歉如果我造成麻烦。由于我对这个完整的xul-js-firefox新手并不了解,它被称为“从浏览器缓存中提取数据”。 – Ghokun
换句话说,你从某处复制了那段代码,你不知道它干了什么? –