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的防止大图片撑破页面的实现代码(立即缩放)
Oct 24 Javascript
阻止子元素继承父元素事件具体思路及实现
May 02 Javascript
JavaScript前端图片加载管理器imagepool使用详解
Dec 29 Javascript
直接拿来用的15个jQuery代码片段
Sep 23 Javascript
JavaScript字符串对象(string)基本用法示例
Jan 18 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
Vue 实现双向绑定的四种方法
Mar 16 Javascript
Vue中的基础过渡动画及实现原理解析
Dec 04 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 Javascript
WebSocket的简单介绍及应用
May 23 Javascript
Vue中对iframe实现keep alive无刷新的方法
Jul 23 Javascript
JavaScript接口实现方法实例分析
May 16 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关于array_multisort多维数组排序的使用说明
2011/01/04 PHP
PHP使用GIFEncoder类处理gif图片实例
2014/07/01 PHP
thinkPHP3.x常量整理(预定义常量/路径常量/系统常量)
2016/05/20 PHP
会自动逐行上升的文本框
2006/06/30 Javascript
JavaScript窗口功能指南之在窗口中书写内容
2006/07/21 Javascript
一个加密JavaScript的开源工具PACKER2.0.2
2006/11/04 Javascript
Javascript Math对象
2009/08/13 Javascript
Javascript中定义方法的另类写法(批量定义js对象的方法)
2011/02/25 Javascript
JavaScript实现统计文本框Textarea字数增强用户体验
2012/12/21 Javascript
三种取消选中单选框radio的方法
2014/09/09 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
浅析jQuery事件之on()方法绑定多个选择器,多个事件
2016/04/27 Javascript
vue省市区三联动下拉选择组件的实现
2017/04/28 Javascript
Angular实现图片裁剪工具ngImgCrop实践
2017/08/17 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
python简单猜数游戏实例
2015/07/09 Python
浅析Python中else语句块的使用技巧
2016/06/16 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
详解Python 正则表达式模块
2018/11/05 Python
安装PyInstaller失败问题解决
2019/12/14 Python
使用Python开发个京东上抢口罩的小实例(仅作技术研究学习使用)
2020/03/10 Python
通过python调用adb命令对App进行性能测试方式
2020/04/23 Python
Django 解决开发自定义抛出异常的问题
2020/05/21 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
Python爬虫破解登陆哔哩哔哩的方法
2020/11/17 Python
Python  Asyncio模块实现的生产消费者模型的方法
2021/03/01 Python
CSS中几个与换行有关的属性简明总结
2014/04/15 HTML / CSS
用纯css3实现的图片放大镜特效效果非常不错
2014/09/02 HTML / CSS
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
阿玛尼美妆英国官网:Giorgio Armani Beauty英国
2019/03/28 全球购物
介绍Java的内部类
2012/10/27 面试题
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
2014年计算机专业个人自我评价
2014/01/19 职场文书
公司拓展活动方案
2014/02/13 职场文书
清明节扫墓活动总结
2015/02/09 职场文书
2016年青少年禁毒宣传教育活动总结(学校)
2016/04/05 职场文书