编程语言
首页 > 编程语言> > 如何在Javascript中将二进制数据读取到字节数组?

如何在Javascript中将二进制数据读取到字节数组?

作者:互联网

我想读取JavaScript中的二进制文件,该文件将通过XMLHttpRequest获取并能够操作该数据.从我的研究中我发现了这种将二进制文件数据读入数组的方法

var xhr = new XMLHttpRequest();
xhr.open('GET', '/binary_And_Ascii_File.obj', true);

xhr.responseType = 'arraybuffer';

xhr.onload = function(e) {
  var uInt8Array = new Uint8Array(this.response);
};

如何将此二进制数据数组转换为人类可读字符串?

解决方法:

我相信你会发现这有用:http://jsdo.it/tsmallfield/uint8array.

点击javascript标签.
 将出现用于将Uint8Array转换为字符串的代码.作者展示了2种方法:

>第一个是关于创建视图.
>第二个偏移字节.

编辑:报告代码的完整性

var buffer = new ArrayBuffer( res.length ), // res is this.response in your case
    view   = new Uint8Array( buffer ),
    len    = view.length,
    fromCharCode = String.fromCharCode,
    i, s, str;    

/**
 *  1) 8bitの配列に入れて上位ビットけずる
 */
str = "";

for ( i = len; i--; ) {
  view[i] = res[i].charCodeAt(0);
}

for ( i = 0; i < len; ++i ) {
  str += fromCharCode( view[i] );
}    

/**
 *  2) & 0xff で上位ビットけずる
 */
str = "";

for ( i = 0; i < len; ++i ) {
  str += fromCharCode( res[i].charCodeAt(0) & 0xff );
}

标签:javascript,binary,binary-data
来源: https://codeday.me/bug/20190923/1813709.html