读取二进制文件时出错

时间:2015-05-29 00:22:34

标签: javascript filereader typed-arrays

我正在尝试用JavaScript读取二进制文件。

然而,它没有返回任何东西。下面的命令出了什么问题?

{{1}}

2 个答案:

答案 0 :(得分:2)

ArrayBuffer无法设置为字符串。如果二进制数据不可打印,则需要将内容转换为字符串或Base-64 / hex表示。

对于文字,您可以使用新的TextDecoder对象(在某些浏览器中可能需要polyfill)。

示例

var td = new TextDecoder("utf-8");  // or use utf-16 etc. depending on what you expect
var txt = td.decode(campo);         // pass in the ArrayBuffer

现在可以将txt设置为元素的字符串源(如果可读)。

另请注意,您有一个campo的局部变量,它会覆盖父变量campo

答案 1 :(得分:2)

不应该:

var fr = new FileReader;
var txt = fr.readAsText(document.getElementById('fileInput').files[0]);
fr.onloadend = function(r){
  console.log(r);
}