我正在尝试用JavaScript读取二进制文件。
然而,它没有返回任何东西。下面的命令出了什么问题?
{{1}}
答案 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);
}