本文摘自PHP中文网,作者青灯夜游,侵删。
本篇文章给大家介绍一下Nodejs中使用string_decoder模块将buffer转成string的方法。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。模块简介
string_decoder
模块用于将Buffer转成对应的字符串。使用者通过调用stringDecoder.write(buffer)
,可以获得buffer对应的字符串。【推荐学习:《nodejs 教程》】
它的特殊之处在于,当传入的buffer不完整(比如三个字节的字符,只传入了两个),内部会维护一个internal buffer将不完整的字节cache住,等到使用者再次调用stringDecoder.write(buffer)
传入剩余的字节,来拼成完整的字符。
这样可以有效避免buffer不完整带来的错误,对于很多场景,比如网络请求中的包体解析等,非常有用。
入门例子
这节分别演示了decode.write(buffer)
、decode.end([buffer])
两个主要API的用法。
例子一:
decoder.write(buffer)
调用传入了Buffer对象<Buffer e4 bd a0>
,相应的返回了对应的字符串你
;
1 2 3 4 5 6 |
|
例子二:
当decoder.end([buffer])
被调用时,内部剩余的buffer会被一次性返回。如果此时带上buffer
参数,那么相当于同时调用decoder.write(buffer)
和decoder.end()
。
1 2 3 4 5 6 7 8 9 |
|
例子:分多次写入多个字节
下面的例子,演示了分多次写入多个字节时,string_decoder
模块是怎么处理的。
相关阅读 >>
更多相关阅读请进入《nodejs》频道 >>

Vue.js 设计与实现 基于Vue.js 3 深入解析Vue.js 设计细节
本书对 Vue.js 3 技术细节的分析非常可靠,对于需要深入理解 Vue.js 3 的用户会有很大的帮助。——尤雨溪,Vue.js作者