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 相关文章推荐
js活用事件触发对象动作
Aug 10 Javascript
jquery实现居中弹出层代码
Aug 25 Javascript
jQuery1.3.2 升级到jQuery1.4.4需要修改的地方
Jan 06 Javascript
js编码之encodeURIComponent使用介绍(asp,php)
Mar 01 Javascript
关于javascript中的typeof和instanceof介绍
Dec 04 Javascript
javascript实现数字验证码的简单实例
Feb 10 Javascript
jquery插件推荐 jquery.cookie
Nov 09 Javascript
jQuery+CSS实现的网页二级下滑菜单效果
Aug 25 Javascript
jquery表单验证需要做些什么
Nov 17 Javascript
node学习笔记之读写文件与开启第一个web服务器操作示例
May 29 Javascript
快速解决layui弹窗按enter键不停弹窗的问题
Sep 18 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
Apr 08 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 $_ENV为空的原因分析
2009/06/01 PHP
火车头discuz6.1 完美采集的php接口文件
2009/09/13 PHP
PHP 事件机制(2)
2011/03/23 PHP
laravel-admin 后台表格筛选设置默认的查询日期方法
2019/10/03 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
js/ajax跨越访问-jsonp的原理和实例(javascript和jquery实现代码)
2012/12/27 Javascript
JS中引用百度地图并将百度地图的logo和信息去掉
2013/09/29 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
对象不支持indexOf属性或方法的解决方法(必看)
2017/05/28 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
jQuery EasyUI的TreeGrid查询功能实现方法
2017/08/08 jQuery
详解React Native网络请求fetch简单封装
2017/08/10 Javascript
javascript获取指定区间范围随机数的方法
2017/09/08 Javascript
Vue2.0中三种常用传值方式(父传子、子传父、非父子组件传值)
2018/08/16 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
解决vue脚手架项目打包后路由视图不显示的问题
2018/09/20 Javascript
详解Vue源码之数据的代理访问
2018/12/11 Javascript
JS把字符串格式的时间转换成几秒前、几分钟前、几小时前、几天前等格式
2019/07/10 Javascript
vue+element实现动态加载表单
2020/12/13 Vue.js
Python 自动安装 Rising 杀毒软件
2009/04/24 Python
python标准算法实现数组全排列的方法
2015/03/17 Python
python中的编码知识整理汇总
2016/01/26 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python+requests实现接口测试的完整步骤
2020/10/27 Python
用CSS3实现背景渐变的方法
2015/07/14 HTML / CSS
美国最好的葡萄酒网上商店:Wine Library
2019/11/02 全球购物
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
Shell编程面试题
2012/05/30 面试题
优秀少先队工作者事迹材料
2014/05/13 职场文书
警察群众路线整改措施
2014/09/26 职场文书
办护照工作证明
2014/10/01 职场文书
领导干部作风建设剖析材料
2014/10/11 职场文书
2015年元旦主持词结束语
2014/12/14 职场文书
鼋头渚导游词
2015/02/05 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL