【发布时间】:2016-12-31 20:16:32
【问题描述】:
我有以下来自 Azure 存储的 receives blob's data 代码:
$.ajax({
headers: {
'x-ms-range': 'bytes=' + from + '-' + to,
'x-ms-version': '2015-07-08',
'x-ms-client-request-id': guid()
},
url: uri,
type: "GET",
success: function (data) {
/* data is a string! */
},
error: function (error, textStatus) { }
});
通话效果很好,我收到了文本形式的数据。
问题是我需要将其转换为ArrayBuffer。
现在我尝试了很多方法,比如:
new TextEncoder().encode(data);
以及以下转换器:
function stringToUint(string) {
var charList = string.split(''),
uintArray = [];
for (var i = 0; i < charList.length; i++) {
uintArray.push(charList[i].charCodeAt(0));
}
return new Uint16Array(uintArray);
}
但是数据字符串没有正确转换为二进制(我已经检查了 blob 的真实二进制值)。
我应该使用不同的ArrayBuffer 类型吗?还是我在使用 TextEncoder 转换时使用了错误的编码(我尝试过 utf-8、utf-16、utf-32)?
请帮忙:(
【问题讨论】:
-
不是base64编码的……就好像你用文本编辑器打开了一个二进制文件一样。
标签: javascript jquery binary azure-storage