Node.js实用代码段之获取Buffer对象字节长度


Posted in Javascript onMarch 17, 2016

我们知道Node.js框架下的Buffer对象能够对二进制数据提供很好的支持,那么获取一个Buffer对象真实的字节长度则是必须要用到的功能了。Node.js框架为开发人员提供了一个Buffer.byteLength()方法,下面我们借助一个官方文档提供的例程向读者演示一下该方法的使用过程。

本例ch04.buffer-byteLength.js主要代码如下:

/**
 * ch04.buffer-byteLength.js
 */
 console.info("------Buffer.byteLength()------");
 console.info();
 str = '\u00bd + \u00bc = \u00be';  //定义字符串
 //½ + ¼ = ¾: 9 characters, 12 bytes
 console.log(str + ": " + str.length + " characters, " + Buffer.byteLength(str, 'utf8') + " bytes");
 console.info();
 console.info("------Buffer.byteLength()------");

【代码分析】

第06行代码定义并初始化了一个字符串变量,其变量名为str,数据内容为\u00bd + \u00bc = \u00be,读者可以去相关网站查阅一下这几个16进制编码,\u00bd代表字符"½",\u00bc代表字符"¼",\u00be代表字符"¾";然后,在第08行代码通过打印输出str.length属性来显示字符串变量str的长度,通过Buffer.byteLength()方法来显示字符串变量str的真实字节长度,关于Buffer.byteLength()方法的语法说明如下:
语法:Buffer.byteLength(string[, encoding])
该方法返回一个Number数字,用来表示string参数的真实字节长度,encoding参数默认为"utf8"编码格式。

从图4.4中显示的结果可以看到,字符串str的length属性为9个字符长度,而占用字节长度为12 个,因此我们可以知道"½"、"¼"和"¾"这3个字符其实占用了两个字节的长度。

Node.js实用代码段之获取Buffer对象字节长度

提示:本节我们需要了解字符与字节这两个概念的异同,在计算机编码中一个字节占用8 bit(1 byte = 8 bit),而一个字符可能是一个单字节字符,也可能是双字节字符。另外,Buffer.byteLength()方法在写http响应头时经常要用到,如果想改写http响应头Cotent-Length时,千万记得一定要用Buffer.byteLength()方法,而不要使用 String.prototype.length属性。

以上就是为大家分享的第一个超实用的Node.js代码段,下面还有更多精彩的Node.js代码段,不要错过,希望对大家的学习有所帮助。

Javascript 相关文章推荐
jquery jqPlot API 中文使用教程(非常强大的图表工具)
Aug 15 Javascript
Javascript的数组与字典用法与遍历对象的属性技巧
Nov 07 Javascript
javascript使用call调用微信API
Dec 15 Javascript
深入理解JavaScript系列(26):设计模式之构造函数模式详解
Mar 03 Javascript
jquery跟随屏幕滚动效果的实现代码
Apr 13 Javascript
jQuery实现简单的抽奖游戏
May 05 jQuery
关于在mongoose中填充外键的方法详解
Aug 14 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
May 09 jQuery
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 Javascript
vue实现拖拽的简单案例 不超出可视区域
Jul 25 Javascript
细述Javascript的加法运算符的具体使用
Oct 18 Javascript
微信小程序swiper使用网络图片不显示问题解决
Dec 13 Javascript
jquery基础知识第一讲之认识jquery
Mar 17 #Javascript
Angularjs 滚动加载更多数据
Mar 17 #Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 #Javascript
JavaScript函数内部属性和函数方法实例详解
Mar 17 #Javascript
基于jquery实现简单的分页控件
Mar 17 #Javascript
jQuery实现图片局部放大镜效果
Mar 17 #Javascript
jQuery实现放大镜效果实例代码
Mar 17 #Javascript
You might like
php对csv文件的读取,写入,输出下载操作详解
2013/08/10 PHP
php学习笔记之基础知识
2014/11/08 PHP
PHP中应该避免使用同名变量(拆分临时变量)
2015/04/03 PHP
PHP laravel中的多对多关系实例详解
2017/06/07 PHP
Laravel框架源码解析之反射的使用详解
2020/05/14 PHP
Jquery Ajax学习实例4 向WebService发出请求,返回实体对象的异步调用
2010/03/16 Javascript
javascript一个无懈可击的实例化XMLHttpRequest的方法
2010/10/13 Javascript
HTML5附件拖拽上传drop & google.gears实现代码
2011/04/28 Javascript
那些年,我还在学习jquery 学习笔记
2012/03/05 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
深入研究jQuery图片懒加载 lazyload.js使用方法
2017/08/16 jQuery
vue之浏览器存储方法封装实例
2018/03/15 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
webpack4.0+vue2.0利用批处理生成前端单页或多页应用的方法
2019/06/28 Javascript
vue路由传参的基本实现方式小结【三种方式】
2020/02/05 Javascript
写给新手同学的vuex快速上手指北小结
2020/04/14 Javascript
Python 实现使用dict 创建二维数据、DataFrame
2018/04/13 Python
Django model序列化为json的方法示例
2018/10/16 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
用Python实现将一张图片分成9宫格的示例
2019/07/05 Python
python在OpenCV里实现投影变换效果
2019/08/30 Python
Python  word实现读取及导出代码解析
2020/07/09 Python
YesBabyOnline美国:全球性的在线婚纱礼服工厂
2018/05/05 全球购物
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
自荐信如何“自荐”
2013/10/24 职场文书
审计工作个人的自我评价
2013/12/25 职场文书
促销活动总结报告
2014/04/26 职场文书
给老婆的保证书范文
2014/04/28 职场文书
住宅使用说明书
2014/05/09 职场文书
驾驶员安全责任书
2014/07/22 职场文书
音乐教育专业自荐信
2014/09/18 职场文书
2014年小学少先队工作总结
2014/12/18 职场文书
运动会三级跳加油稿
2015/07/21 职场文书
污染环境建议书
2015/09/14 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript