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的无缝循环新闻列表插件
Mar 07 Javascript
js获取当前地址 JS获取当前URL的示例代码
Feb 26 Javascript
javascript 获取浏览器版本
Jan 21 Javascript
Javascript之Date对象详解
Jun 07 Javascript
JS实现弹出居中的模式窗口示例
Jun 20 Javascript
Javascript操作表单实例讲解(下)
Jun 20 Javascript
浅谈js script标签中的预解析
Dec 30 Javascript
Vue.js学习笔记之修饰符详解
Jul 25 Javascript
使用express+multer实现node中的图片上传功能
Feb 02 Javascript
Vue中的$set的使用实例代码
Oct 08 Javascript
layui table 复选框跳页后再回来保持原来选中的状态示例
Oct 26 Javascript
vue移动端下拉刷新和上滑加载
Oct 27 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实现链结人气统计
2006/10/09 PHP
PHP中uploaded_files函数使用方法详解
2011/03/09 PHP
PHP中改变图片的尺寸大小的代码
2011/07/17 PHP
PHP 登录完成后如何跳转上一访问页面
2014/01/14 PHP
php中session过期时间设置及session回收机制介绍
2014/05/05 PHP
Yii2框架RESTful API 格式化响应,授权认证和速率限制三部分详解
2016/11/10 PHP
PHP添加PNG图片背景透明水印操作类定义与用法示例
2019/03/12 PHP
js 关于=+与+=日期函数使用说明(赋值运算符)
2011/11/15 Javascript
7款吸引人眼球的jQuery/CSS3特效实例分享
2013/04/25 Javascript
JavaScript中pop()方法的使用教程
2015/06/09 Javascript
JSON字符串转JSON对象
2015/07/31 Javascript
jQuery模拟360浏览器切屏效果幻灯片(附demo源码下载)
2016/01/29 Javascript
React实现双向绑定示例代码
2016/09/19 Javascript
JS中input表单隐藏域及其使用方法
2017/02/13 Javascript
详解Angular 中 ngOnInit 和 constructor 使用场景
2017/06/22 Javascript
JavaScript函数中的this四种绑定形式
2017/08/15 Javascript
JS随机数产生代码分享
2018/02/24 Javascript
解决Nodejs全局安装模块后找不到命令的问题
2018/05/15 NodeJs
vuex实现像调用模板方法一样调用Mutations方法
2019/11/06 Javascript
浅谈Vue static 静态资源路径 和 style问题
2020/11/07 Javascript
WebStorm无法正确识别Vue3组合式API的解决方案
2021/02/18 Vue.js
python批量生成本地ip地址的方法
2015/03/23 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
2015/04/25 Python
python文件操作相关知识点总结整理
2016/02/22 Python
python正则表达式之对号入座篇
2018/07/24 Python
Python 从subprocess运行的子进程中实时获取输出的例子
2019/08/14 Python
TensorFlow2.1.0安装过程中setuptools、wrapt等相关错误指南
2020/04/08 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
使用CSS3配合IE滤镜实现渐变和投影的效果
2015/09/06 HTML / CSS
Whittard官方海外旗舰店:英国百年茶叶品牌
2018/02/22 全球购物
怎么样写好简历中的自我评价
2013/10/25 职场文书
爱耳日活动总结
2014/04/30 职场文书
原料仓管员岗位职责
2015/04/01 职场文书
学校勤俭节约倡议书
2015/04/29 职场文书
复兴之路纪录片观后感
2015/06/02 职场文书
2015年暑期社会实践总结
2015/07/13 职场文书