从服务器获取文件并将其转换为 javascript 中的字节数组?
Get file from server and convert it to byte array in javascript?
在 javascript 我想从服务器下载(获取)二进制文件并使用它的字节。
我使用此代码:
$.get('/file.mp4', function(data) {
var bytes = new Uint8Array(data.length);
for (var i=0; i<data.length; i++) {
bytes[i] = data.charCodeAt(i);
}
});
但是有一个问题:data变量的某些字符的ASCII码大于255(如“±”--> ASCII:261)!!和 charCodeAt(i) return 65533 当我使用 console.log(data[i])
时,它们的输出也是“�”。
我测试了 "ą".charCodeAt(0)
并且输出是 261 所以我猜问题出在 get 方法接收的 data 中在 charCodeAt 方法中。有没有其他下载二进制文件的方法??
像这样获取数据:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/my/image/name.png', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
// get binary data as a response
var blob = this.response;
}
};
xhr.send();
在 javascript 我想从服务器下载(获取)二进制文件并使用它的字节。 我使用此代码:
$.get('/file.mp4', function(data) {
var bytes = new Uint8Array(data.length);
for (var i=0; i<data.length; i++) {
bytes[i] = data.charCodeAt(i);
}
});
但是有一个问题:data变量的某些字符的ASCII码大于255(如“±”--> ASCII:261)!!和 charCodeAt(i) return 65533 当我使用 console.log(data[i])
时,它们的输出也是“�”。
我测试了 "ą".charCodeAt(0)
并且输出是 261 所以我猜问题出在 get 方法接收的 data 中在 charCodeAt 方法中。有没有其他下载二进制文件的方法??
像这样获取数据:
var xhr = new XMLHttpRequest();
xhr.open('GET', '/my/image/name.png', true);
xhr.responseType = 'blob';
xhr.onload = function(e) {
if (this.status == 200) {
// get binary data as a response
var blob = this.response;
}
};
xhr.send();