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处理json与ajax返回JSON实例代码
Jan 03 Javascript
js实现最短的XML格式化工具实例
Mar 12 Javascript
jquery实现页面百叶窗走马灯式翻滚显示效果的方法
Mar 12 Javascript
JS实现slide文字框缩放伸展效果代码
Nov 05 Javascript
Javascript类型转换的规则实例解析
Feb 23 Javascript
AngularJs基于角色的前端访问控制的实现
Nov 07 Javascript
JavaScript交换两个变量值的七种解决方案
Dec 01 Javascript
bootstrap导航、选项卡实现代码
Dec 28 Javascript
vue.js 底部导航栏 一级路由显示 子路由不显示的解决方法
Mar 09 Javascript
200行HTML+JavaScript实现年会抽奖程序
Jan 22 Javascript
详解Vue源码学习之双向绑定
Apr 10 Javascript
微信小程序搜索框样式并实现跳转到搜索页面(小程序搜索功能)
Mar 10 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
linux系统上支持php的 iconv()函数的方法
2011/10/01 PHP
自己写了一个php检测文件编码的函数
2014/04/21 PHP
解决form中action属性后面?传递参数 获取不到的问题
2017/07/21 PHP
使用ucenter实现多站点同步登录的讲解
2019/03/21 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
基于jQuery图片平滑连续滚动插件
2009/04/27 Javascript
javascript 动态设置已知select的option的value值的代码
2009/12/16 Javascript
当jQuery1.7遇上focus方法的问题
2014/01/26 Javascript
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
Prototype框架详解
2015/11/25 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
node中使用es6/7/8(支持性与性能)
2019/03/28 Javascript
layer.prompt输入层的例子
2019/09/24 Javascript
nodejs实现UDP组播示例方法
2019/11/04 NodeJs
基于vue.js实现购物车
2020/01/15 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
python 参数列表中的self 显式不等于冗余
2008/12/01 Python
Python实现端口复用实例代码
2014/07/03 Python
利用python写个下载teahour音频的小脚本
2017/05/08 Python
python 生成器协程运算实例
2017/09/04 Python
python 实现数组list 添加、修改、删除的方法
2018/04/04 Python
Python基于sklearn库的分类算法简单应用示例
2018/07/09 Python
python实现的按要求生成手机号功能示例
2019/10/08 Python
TensorFlow2.0:张量的合并与分割实例
2020/01/19 Python
解决Python图形界面中设置尺寸的问题
2020/03/05 Python
Python Unittest原理及基本使用方法
2020/11/06 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
HTML5 Canvas draw方法制作动画效果示例
2013/07/11 HTML / CSS
中国综合性网上购物商城:当当(网上卖书起家)
2016/11/16 全球购物
eDreams加拿大:廉价航班、酒店和度假
2019/03/29 全球购物
SQL Server 2000数据库的文件有哪些,分别进行描述
2013/03/30 面试题
学院书画协会部门岗位职责
2013/12/01 职场文书
个人安全承诺书
2014/05/22 职场文书
小学中等生评语
2014/12/29 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
幼儿园教师心得体会范文
2016/01/21 职场文书