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 相关文章推荐
javascript 尚未实现错误解决办法
Nov 27 Javascript
基于jQuery的前端数据通用验证库
Aug 08 Javascript
jquery xMarquee实现文字水平无缝滚动效果
Apr 29 Javascript
基于JS实现无缝滚动思路及代码分享
Jun 07 Javascript
基于Bootstrap实现的下拉菜单手机端不能选择菜单项的原因附解决办法
Jul 22 Javascript
js自调用匿名函数的三种写法(推荐)
Aug 19 Javascript
jQuery表单验证简单示例
Oct 17 Javascript
Node.js读取文件内容示例
Mar 07 Javascript
JavaScript判断浏览器和hack滚动条的写法
Jul 23 Javascript
AngularJS发送异步Get/Post请求方法
Aug 13 Javascript
基于vue实现滚动条滚动到指定位置对应位置数字进行tween特效
Apr 18 Javascript
layer关闭当前窗口页面以及确认取消按钮的方法
Sep 09 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
PHP4之COOKIE支持详解
2006/10/09 PHP
php 错误处理经验分享
2011/10/11 PHP
深入array multisort排序原理的详解
2013/06/18 PHP
Jsonp 跨域的原理以及Jquery的解决方案
2010/05/18 Javascript
js 复制或插入Html的实现方法小结
2010/05/19 Javascript
jQuery中:contains选择器用法实例
2014/12/30 Javascript
前端js文件合并的三种方式推荐
2016/05/19 Javascript
一个极为简单的requirejs实现方法
2016/10/20 Javascript
使用BootStrap和Metroui设计的metro风格微网站或手机app界面
2016/10/21 Javascript
关于Jquery中的bind(),on()绑定事件方式总结
2016/10/26 Javascript
bootstrap fileinput 插件使用项目总结(经验)
2017/02/22 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
基于vue开发的在线付费课程应用过程
2018/01/25 Javascript
在vue中封装可复用的组件方法
2018/03/01 Javascript
JS实现集合的交集、补集、差集、去重运算示例【ES5与ES6写法】
2019/02/18 Javascript
模块化react-router配置方法详解
2019/06/03 Javascript
layui中select,radio设置不生效的解决方法
2019/09/05 Javascript
layui.tree组件的使用以及搜索节点功能的实现
2019/09/26 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
[56:00]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs TNC 第二场
2018/04/10 DOTA
python实现socket端口重定向示例
2014/02/10 Python
Python随机生成信用卡卡号的实现方法
2015/05/14 Python
详谈python read readline readlines的区别
2017/09/22 Python
python 用所有标点符号分隔句子的示例
2019/07/15 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python之关于类变量的两种赋值区别详解
2020/03/12 Python
Python3标准库glob文件名模式匹配的问题
2020/03/13 Python
python能做哪方面的工作
2020/06/15 Python
HTML 5.1来了 9月份正式发布 更新内容预览
2016/04/26 HTML / CSS
墨尔本复古时尚品牌:Dangerfield
2018/12/12 全球购物
销售总经理岗位职责
2014/03/15 职场文书
城市创卫标语
2014/06/17 职场文书
庆六一宣传标语
2014/10/08 职场文书
2014年数学教研组工作总结
2014/12/06 职场文书
家属联谊会致辞
2015/07/31 职场文书
Nginx静态压缩和代码压缩提高访问速度详解
2022/05/30 Servers