首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能把ArrayBuffer转换成字符串吗?

我能把ArrayBuffer转换成字符串吗?
EN

Stack Overflow用户
提问于 2012-10-23 21:23:20
回答 3查看 4.4K关注 0票数 1

我在html5上传脚本工作。我想要文件流的每一块的md5散列。

下面是我使用FileReader来读取流,但是当我将reader结果传递给base64类时,我得到了异常。对象不支持属性或方法“”charCodeAt“”

代码语言:javascript
运行
复制
var reader = new FileReader();
reader.onload = function (f) {
var hash = MD5(Base64.encode(f.target.result));
                };
reader.readAsArrayBuffer(blob)
EN

回答 3

Stack Overflow用户

发布于 2012-10-23 21:30:48

这将完成以下工作:

替换

代码语言:javascript
运行
复制
reader.readAsArrayBuffer(blob);

使用

代码语言:javascript
运行
复制
reader.readAsText(blob);

http://www.w3.org/TR/FileAPI/#dfn-readAsText

票数 3
EN

Stack Overflow用户

发布于 2012-10-23 21:42:04

你应该试着这样做:

代码语言:javascript
运行
复制
function ab2str(buf) {
  return String.fromCharCode.apply(null, new Uint16Array(buf));
}

function str2ab(str) {
  var buf = new ArrayBuffer(str.length*2); // 2 bytes for each char
  var bufView = new Uint16Array(buf);
  for (var i=0, strLen=str.length; i<strLen; i++) {
    bufView[i] = str.charCodeAt(i);
  }
  return buf;
}
票数 0
EN

Stack Overflow用户

发布于 2016-07-10 19:07:35

在您的例子中,Base64是不必要的。

代码语言:javascript
运行
复制
var reader = new FileReader();
reader.onload = function (evt) {
    var hash = MD5(evt.target.result);
};
reader.readAsText(blob,'iso-8859-1');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13031433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档