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 相关文章推荐
写了一个layout,拖动条连贯,内容区可为iframe
Aug 19 Javascript
html 锁定页面(js遮罩层弹出div效果)
Oct 27 Javascript
jQuery操作JSON的CRUD用法实例
Feb 25 Javascript
javascript引用类型之时间Date和数组Array
Aug 27 Javascript
JQuery实现级联下拉框效果实例讲解
Sep 17 Javascript
React简单介绍
May 24 Javascript
js中变量的连续赋值(实例讲解)
Jul 08 Javascript
JS实现点击Radio动态更新table数据
Jul 18 Javascript
vue.config.js常用配置详解
Nov 14 Javascript
原生js实现表格翻页和跳转
Sep 29 Javascript
记录一次websocket封装的过程
Nov 23 Javascript
详解vue中使用transition和animation的实例代码
Dec 12 Vue.js
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版微信支付api.mch.weixin.qq.com域名解析慢原因与解决方法
2016/10/12 PHP
javascript 日期时间函数(经典+完善+实用)
2009/05/27 Javascript
jQuery层次选择器选择元素使用介绍
2013/04/18 Javascript
jQuery弹性滑动导航菜单实现思路及代码
2013/05/02 Javascript
jquery showModelDialog的使用方法示例详解
2013/11/19 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
javascript使用正则控制input输入框允许输入的值方法大全
2014/06/19 Javascript
jQuery.lazyload+masonry改良图片瀑布流代码
2014/06/20 Javascript
常用的JavaScript WEB操作方法分享
2015/02/28 Javascript
Node.js中的流(Stream)介绍
2015/03/30 Javascript
JavaScript 事件对象介绍
2015/04/13 Javascript
jquery插件validation实现验证身份证号等
2015/06/04 Javascript
js实现密码强度检验
2017/01/15 Javascript
Vue.js实现表格动态增加删除的方法(附源码下载)
2017/01/20 Javascript
js实现打地鼠小游戏
2017/02/13 Javascript
jQuery实现div跟随鼠标移动
2020/08/20 jQuery
详解React 16 中的异常处理
2017/07/28 Javascript
使用use注册Vue全局组件和全局指令的方法
2018/03/08 Javascript
Node.js 使用AngularJS的方法示例
2018/05/11 Javascript
Vue $emit $refs子父组件间方法的调用实例
2018/09/12 Javascript
vue-cli 构建骨架屏的方法示例
2018/11/08 Javascript
使用 Opentype.js 生成字体子集的实例代码详解
2020/05/25 Javascript
C#返回当前系统所有可用驱动器符号的方法
2015/04/18 Python
Python中typing模块与类型注解的使用方法
2019/08/05 Python
Python实现决策树并且使用Graphviz可视化的例子
2019/08/09 Python
Tensorflow卷积实现原理+手写python代码实现卷积教程
2020/05/22 Python
OpenCV 使用imread()函数读取图片的六种正确姿势
2020/07/09 Python
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
排序都有哪几种方法?请列举。用JAVA实现一个快速排序
2014/02/16 面试题
《放飞蜻蜓》教学反思
2014/04/27 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
个人专业技术总结
2015/03/05 职场文书
求职意向书范本
2015/05/11 职场文书
了解Redis常见应用场景
2021/06/23 Redis
Android开发手册自定义Switch开关按钮控件
2022/06/10 Java/Android
ssh服务器拒绝了密码 请再试一次已解决(亲测有效)
2022/08/14 Servers