Node.js API实例讲解——二进制类型转换
二进制类型转换,buffer转json,通过buf.toJSON方法可将Buffer对象转换为JSON对象。
二进制类型转换
buffer转json
通过buf.toJSON方法可将Buffer对象转换为JSON对象。
例1
var buf = new Buffer("你好"); console.log(buf.toJSON()) // 打印 [ 228, 189, 160, 229, 165, 189 ]
json转buffer
通过new Buffer([byte数组])的方式可把JSON“转换”为Buffer对象。
例1
var jsonObj = [ 228, 189, 160, 229, 165, 189 ]; var buf = new Buffer(jsonObj); // 转换为Buffer对象 console.log(buf.toString()); // 打印你好
buffer转string
通过buf.toString()方法可将buffer转换为字符串形式。
例1
var buf = new Buffer([ 228, 189, 160, 229, 165, 189 ]); // 转换为Buffer对象 console.log(buf.toString()); // 你好 console.log(buf.toString("base64")); // 5L2g5aW9 console.log(buf.toString("hex")); // e4bda0e5a5bd console.log(buf.toString("utf8",0,3)) // 你
string转buffer
参看本章的‘创建Buffer实例’一节。
Buffer转类型化数组ArrayBuffer
前面我们知道node.js,具有的Buffer类型有强大的功能,同时标准化的类型化数组是标准,他们相互转换也是很必要的。
Buffer类型与ArrayBuffer之间的转换,可通过Uint8Array八位无符号整数对象来进行转换,原因是Uint8Array以byte(8bit)为单元的数据数组,而Buffer也是,所以可以利用这一点轻松转换。
首先我们开发一个方法,用来进行这个转换功能。
function toArrayBuffer(buffer) { // 创建一个缓存对象,长度等于buffer.length var ab = new ArrayBuffer(buffer.length); | // 创建一个Uint8类型的数组对象。 var view = new Uint8Array(ab); for (var i = 0; i < buffer.length; ++i) { view[i] = buffer[i]; // 把buffer的数据拷贝到ab缓存内。 } return ab; // 返回新的 ArrayBuffer对象。 }
测试一下:
var buf = new Buffer("你好"); var ab = toArrayBuffer(buf); console.log(ab instanceof ArrayBuffer); // true 表示Buffer对象已转为ArrayBuffer
类型化数组ArrayBuffer转Buffer
原理一样
function toBuffer(ab) { var buffer = new Buffer(ab.byteLength); var view = new Uint8Array(ab); for (var i = 0; i < buffer.length; ++i) { buffer[i] = view[i]; } return buffer; }
测试一下:
var arb = new ArrayBuffer(10); var bf = toBuffer(arb); console.log(bf instanceof Buffer) // true ,表示ArrayBuffer对象已转为Buffer
很赞哦! ( 0
)
相关文章
- Nodejs 内容管理系统 DoraCMS 2.1.8 发布
- Nodejs 内容管理系统 DoraCMS-SQL 发布,基于 nodejs + mysql
- Nodejs 内容管理系统 DoraCMS 2.1.7 发布
- 什么是Upstream?
- Nodejs 内容管理系统 DoraCMS 2.1.6 发布
- Visual Studio Online 更新!更好支持Docker、Python、Go、C++
- 利用 html2canvas 生成文章缩略图
- 纪录片《穹顶之下》全集103分钟1080P高清完整视频
- DoraCMS v2.1.5 版本更新
- DoraCMS v2.1.2 Docker 版本(生产环境)
- Nodejs 内容管理系统 DoraCMS 2.1.4 发布
- DoraCMS 插件化探索(一)