博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转] HTML5 Blob与ArrayBuffer、TypeArray和字符串String之间转换
阅读量:6818 次
发布时间:2019-06-26

本文共 2028 字,大约阅读时间需要 6 分钟。

1.将String字符串转换成Blob对象

//将字符串 转换成 Blob 对象var blob = new Blob(["Hello World!"], {    type: 'text/plain'});console.info(blob);console.info(blob.slice(1, 3, 'text/plain'));

2.将TypeArray  转换成 Blob 对象

//将 TypeArray  转换成 Blob 对象var array = new Uint16Array([97, 32, 72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33]);//测试成功//var blob = new Blob([array], { type: "application/octet-binary" });//测试成功, 注意必须[]的包裹var blob = new Blob([array]);//将 Blob对象 读成字符串var reader = new FileReader();reader.readAsText(blob, 'utf-8');reader.onload = function (e) {    console.info(reader.result); //a Hello world!}

ArrayBuffer转Blob

 

var buffer = new ArrayBuffer(32);var blob = new Blob([buffer]);       // 注意必须包裹[]

 

 

 

3,将Blob对象转换成String字符串,使用FileReader的readAsText方法

//将字符串转换成 Blob对象var blob = new Blob(['中文字符串'], {    type: 'text/plain'});//将Blob 对象转换成字符串var reader = new FileReader();reader.readAsText(blob, 'utf-8');reader.onload = function (e) {    console.info(reader.result);}

4.将Blob对象转换成ArrayBuffer,使用FileReader的 readAsArrayBuffer方法

//将字符串转换成 Blob对象var blob = new Blob(['中文字符串'], {    type: 'text/plain'});//将Blob 对象转换成 ArrayBuffervar reader = new FileReader();reader.readAsArrayBuffer(blob);reader.onload = function (e) {    console.info(reader.result); //ArrayBuffer {}    //经常会遇到的异常 Uncaught RangeError: byte length of Int16Array should be a multiple of 2    //var buf = new int16array(reader.result);    //console.info(buf);    //将 ArrayBufferView  转换成Blob    var buf = new Uint8Array(reader.result);    console.info(buf); //[228, 184, 173, 230, 150, 135, 229, 173, 151, 231, 172, 166, 228, 184, 178]    reader.readAsText(new Blob([buf]), 'utf-8');    reader.onload = function () {        console.info(reader.result); //中文字符串    };    //将 ArrayBufferView  转换成Blob    var buf = new DataView(reader.result);    console.info(buf); //DataView {}    reader.readAsText(new Blob([buf]), 'utf-8');    reader.onload = function () {        console.info(reader.result); //中文字符串    };}

关于Blob对象,请参考:

转载于:https://www.cnblogs.com/chris-oil/p/8609118.html

你可能感兴趣的文章
CountDownTimer,0,0
查看>>
mac 终端 常用命令
查看>>
对VM挂载新加入的磁盘
查看>>
MyEclipse *的安装步骤和破解(32位和64位皆适用)(图文详解)
查看>>
如何撤销 PhpStorm/Clion 等 JetBrains 产品的 “Mark as Plain Text” 操作 ?
查看>>
利用RTMFP开发P2P应用
查看>>
使用maven创建web项目
查看>>
第三十八章 springboot+docker(maven)
查看>>
构建单页面应用
查看>>
BZOJ4078 : [Wf2014]Metal Processing Plant
查看>>
变量的数据类型的转换
查看>>
codevs1022 覆盖[Hungary 二分图最大匹配]
查看>>
mybatis同时启用mapperscanner和传统DAO
查看>>
Spring AOP 通过order来指定顺序
查看>>
记一次SQLServer的分页优化兼谈谈使用Row_Number()分页存在的问题
查看>>
Deci and Centi Seconds parsing in java
查看>>
TestNg依赖高级用法之强制依赖与顺序依赖------TestNg依赖详解(二)
查看>>
Javascript中构造函数与new命令
查看>>
java selenium webdriver处理JS操作窗口滚动条
查看>>
C#------数字转中文
查看>>