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子元素过滤选择器使用示例
Jun 24 Javascript
JavaScript中数组去除重复的三种方法
Apr 22 Javascript
下一代Bootstrap的5个特点 超酷炫!
Jun 17 Javascript
JavaScript中Array对象用法实例总结
Nov 29 Javascript
基于JavaScript实现无限加载瀑布流
Jul 21 Javascript
node作为中间服务层如何发送请求(发送请求的实现方法详解)
Jan 02 Javascript
Vue父组件调用子组件事件方法
Feb 23 Javascript
Vue 实现前端权限控制的示例代码
Jul 09 Javascript
基于JS实现父组件的请求服务过程解析
Oct 14 Javascript
12 种使用Vue 的最佳做法
Mar 30 Javascript
vue v-model的用法解析
Oct 19 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中使用sockets:从新闻组中获取文章
2006/10/09 PHP
php解压文件代码实现php在线解压
2014/02/13 PHP
使用PHP+AJAX让WordPress动态加载文章的教程
2015/12/11 PHP
JavaScript之appendChild、insertBefore和insertAfter使用说明
2010/12/30 Javascript
JS焦点图切换,上下翻转
2011/05/12 Javascript
chrome下jq width()方法取值为0的解决方法
2014/05/26 Javascript
JS实现网页表格自动变大缩小的方法
2015/03/09 Javascript
jQuery实用技巧必备(中)
2015/11/03 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
下雪了 javascript实现雪花飞舞
2020/08/02 Javascript
thinkphp标签实现bootsrtap轮播carousel实例代码
2017/02/19 Javascript
js 索引下标之li集合绑定点击事件
2018/01/12 Javascript
node内置调试方法总结
2018/02/22 Javascript
JS中的两种数据类型及实现引用类型的深拷贝的方法
2018/08/12 Javascript
vue中使用vue-cli接入融云实现即时通信
2019/04/19 Javascript
微信小程序class封装http代码实例
2019/08/24 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
JS判断浏览器类型与操作系统的方法分析
2020/04/30 Javascript
Json实现传值到后台代码实例
2020/06/30 Javascript
vue 路由缓存 路由嵌套 路由守卫 监听物理返回操作
2020/08/06 Javascript
[46:42]DOTA2-DPC中国联赛正赛 Aster vs Magma BO3 第二场 3月5日
2021/03/11 DOTA
详解在Python程序中使用Cookie的教程
2015/04/30 Python
关于python的list相关知识(推荐)
2017/08/30 Python
浅析Git版本控制器使用
2017/12/10 Python
Python socket实现简单聊天室
2018/04/01 Python
在Python中定义一个常量的方法
2018/11/10 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
Python实现汇率转换操作
2020/05/03 Python
css3实例教程 一款纯css3实现的环形导航菜单
2014/10/20 HTML / CSS
Paradigit比利时电脑卖场:购买笔记本、电脑、平板和外围设备
2016/11/28 全球购物
浅谈react路由传参的几种方式
2021/03/23 Javascript
历史系毕业生自荐信
2013/10/28 职场文书
党委书记个人检查对照材料思想汇报
2014/10/11 职场文书
高一数学教学反思
2016/02/18 职场文书
两行代码解决Jupyter Notebook中文不能显示的问题
2021/04/24 Python
JS前端可扩展的低代码UI框架Sunmao使用详解
2022/07/23 Javascript