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 相关文章推荐
javascripit实现密码强度检测代码分享
Dec 12 Javascript
jQuery实现的支持IE的html滑动条
Mar 16 Javascript
详解JavaScript中getFullYear()方法的使用
Jun 10 Javascript
jQuery实用技巧必备(下)
Nov 03 Javascript
JavaScript位移运算符(无符号) >>> 三个大于号 的使用方法详解
Mar 31 Javascript
AngularJS入门教程之静态模板详解
Aug 18 Javascript
使用JS和canvas实现gif动图的停止和播放代码
Sep 01 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
Nov 15 Javascript
详解Vue快速零配置的打包工具——parcel
Jan 16 Javascript
vue自定义指令directive实例详解
Jan 17 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
Vue移动端用淘宝弹性布局lib-flexible插件做适配的方法
May 26 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 ss7.5的数据调用 (笔记)
2010/03/08 PHP
php清空(删除)指定目录下的文件,不删除目录文件夹的实现代码
2014/09/04 PHP
php中smarty模板条件判断用法实例
2015/06/11 PHP
PHP hebrev()函数用法讲解
2019/02/21 PHP
js 程序执行与顺序实现详解
2013/05/13 Javascript
javascript中apply和call方法的作用及区别说明
2014/02/14 Javascript
JQuery中层次选择器用法实例详解
2015/05/18 Javascript
js传值后台中文出现乱码的解决方法
2016/06/30 Javascript
在点击div中的p时,如何阻止事件冒泡
2017/02/07 Javascript
从零学习node.js之文件操作(三)
2017/02/21 Javascript
Vue分页组件实例代码
2017/04/17 Javascript
Angular 4依赖注入学习教程之InjectToken的使用(八)
2017/06/04 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
vue分页器组件编写方法详解
2019/06/28 Javascript
vue实现简单图片上传
2020/06/30 Javascript
[01:02]2014 DOTA2国际邀请赛中国区预选赛 现场抢先看
2014/05/22 DOTA
python中pycurl库的用法实例
2014/09/30 Python
30分钟搭建Python的Flask框架并在上面编写第一个应用
2015/03/30 Python
Python中返回字典键的值的values()方法使用
2015/05/22 Python
python设计模式大全
2016/06/27 Python
Django csrf 验证问题的实现
2018/10/09 Python
python向图片里添加文字
2019/11/26 Python
Django中modelform组件实例用法总结
2020/02/10 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
Python数据可视化常用4大绘图库原理详解
2020/10/23 Python
StubHub西班牙:购买和出售全球活动门票
2017/06/05 全球购物
39美元购买一副眼镜或太阳镜:39DollarGlasses.com
2018/06/17 全球购物
实习生自我鉴定
2013/12/12 职场文书
最新的互联网创业计划书
2014/01/10 职场文书
团干部培训方案
2014/06/03 职场文书
幼儿园六一亲子活动方案
2014/08/26 职场文书
整改落实情况汇报材料
2014/10/29 职场文书
综合素质评价个性与发展自我评价
2015/03/06 职场文书
2015年林业工作总结
2015/05/14 职场文书
MySQL 数据库 增删查改、克隆、外键 等操作
2022/05/11 MySQL