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 Aajx访问WCF服务(GET、POST、PUT、DELETE)
Mar 16 Javascript
jquery等待效果示例
May 01 Javascript
Jquery Easyui自定义下拉框组件使用详解(21)
Dec 31 Javascript
vue2.0多条件搜索组件使用详解
Mar 26 Javascript
js学习总结_选项卡封装(实例讲解)
Jul 13 Javascript
Three.js基础学习之场景对象
Sep 27 Javascript
详解vue文件中使用echarts.js的两种方式
Oct 18 Javascript
微信小程序后端实现授权登录
Feb 24 Javascript
javascript用defineProperty实现简单的双向绑定方法
Apr 03 Javascript
Vue3新特性之在Composition API中使用CSS Modules
Jul 13 Javascript
js实现简易拖拽的示例
Oct 26 Javascript
three.js中多线程的使用及性能测试详解
Jan 07 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
虹吸壶煮咖啡26个注意事项
2021/03/03 冲泡冲煮
改写函数实现PHP二维/三维数组转字符串
2013/09/13 PHP
PHP将页面中点击数量高的链接进行高亮显示的方法
2016/05/30 PHP
php正则表达式基本知识与应用详解【经典教程】
2017/04/17 PHP
TP3.2.3框架使用CKeditor编辑器在页面中上传图片的方法分析
2019/12/31 PHP
php设计模式之策略模式实例分析【星际争霸游戏案例】
2020/03/26 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
Javascript常考语句107条收集
2010/03/09 Javascript
javascript实现控制文字大中小显示
2015/04/28 Javascript
jQuery动态添加可拖动元素完整实例(附demo源码下载)
2016/06/21 Javascript
Bootstrap基本插件学习笔记之标签切换(17)
2016/12/08 Javascript
angular directive的简单使用总结
2017/05/24 Javascript
react中使用swiper的具体方法
2018/05/15 Javascript
使用post方法实现json往返传输数据的方法
2019/03/30 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
[09:31]2016国际邀请赛中国区预选赛Yao赛后采访 答题送礼
2016/06/27 DOTA
Python基于PycURL实现POST的方法
2015/07/25 Python
Python简单实现安全开关文件的两种方式
2016/09/19 Python
关于python的bottle框架跨域请求报错问题的处理方法
2017/03/19 Python
Python中import机制详解
2017/11/14 Python
Python操作MySQL数据库的三种方法总结
2018/01/30 Python
python scipy求解非线性方程的方法(fsolve/root)
2018/11/12 Python
python版本五子棋的实现代码
2018/12/11 Python
PyQt5 加载图片和文本文件的实例
2019/06/14 Python
PyQt5高级界面控件之QTableWidget的具体使用方法
2020/02/23 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
美国创意礼品网站:UncommonGoods
2017/02/03 全球购物
构造方法和其他方法的区别
2016/04/26 面试题
住院医师规范化培训实施方案
2014/06/12 职场文书
学校副校长四风对照检查材料整改措施
2014/09/25 职场文书
音乐教师个人总结
2015/02/06 职场文书
2015年助残日活动总结
2015/03/27 职场文书
民事申诉状范本
2015/05/20 职场文书
中国现代文学之经典散文三篇
2019/09/18 职场文书
Python+uiautomator2实现自动刷抖音视频功能
2021/04/29 Python
Python类方法总结讲解
2021/07/26 Python