《超实用的Node.js代码段》连载一:获取Buffer对象字节长度
2016-03-14 17:26
561 查看
我们知道Node.js框架下的Buffer对象能够对二进制数据提供很好的支持,那么获取一个Buffer对象真实的字节长度则是必须要用到的功能了。Node.js框架为开发人员提供了一个Buffer.byteLength()方法,下面我们借助一个官方文档提供的例程向读者演示一下该方法的使用过程。
本例ch04.buffer-byteLength.js主要代码如下:
【代码分析】
第06行代码定义并初始化了一个字符串变量,其变量名为str,数据内容为\u00bd + \u00bc = \u00be,读者可以去相关网站查阅一下这几个16进制编码,\u00bd代表字符"½",\u00bc代表字符"¼",\u00be代表字符"¾";然后,在第08行代码通过打印输出str.length属性来显示字符串变量str的长度,通过Buffer.byteLength()方法来显示字符串变量str的真实字节长度,关于Buffer.byteLength()方法的语法说明如下:
该方法返回一个Number数字,用来表示string参数的真实字节长度,encoding参数默认为"utf8"编码格式。
从图4.4中显示的结果可以看到,字符串str的length属性为9个字符长度,而占用字节长度为12 个,因此我们可以知道"½"、"¼"和"¾"这3个字符其实占用了两个字节的长度。
提示:本节我们需要了解字符与字节这两个概念的异同,在计算机编码中一个字节占用8 bit(1 byte = 8 bit),而一个字符可能是一个单字节字符,也可能是双字节字符。另外,Buffer.byteLength()方法在写http响应头时经常要用到,如果想改写http响应头Cotent-Length时,千万记得一定要用Buffer.byteLength()方法,而不要使用 String.prototype.length属性。
摘自
本例ch04.buffer-byteLength.js主要代码如下:
01 /** 02 * ch04.buffer-byteLength.js 03 */ 04 console.info("------Buffer.byteLength()------"); 05 console.info(); 06 str = '\u00bd + \u00bc = \u00be'; //定义字符串 07 //½ + ¼ = ¾: 9 characters, 12 bytes 08 console.log(str + ": " + str.length + " characters, " + Buffer.byteLength(str, 'utf8') + " bytes"); 09 console.info(); 10 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个字符其实占用了两个字节的长度。
提示:本节我们需要了解字符与字节这两个概念的异同,在计算机编码中一个字节占用8 bit(1 byte = 8 bit),而一个字符可能是一个单字节字符,也可能是双字节字符。另外,Buffer.byteLength()方法在写http响应头时经常要用到,如果想改写http响应头Cotent-Length时,千万记得一定要用Buffer.byteLength()方法,而不要使用 String.prototype.length属性。
摘自
相关文章推荐
- 【honey_blog记】立flag!记录搭建node博客过程中的一点想法
- NodeJs开发目录
- leetcode 237. Delete Node in a Linked List
- node.js学习之react,redux,react-redux
- 【nodejs+ejs】如何给模板传参数?
- 19. Remove Nth Node From End of List
- NodeJs事件驱动
- Leetcode:19. Remove Nth Node From End of List(JAVA)
- node.js中使用q.js实现api的promise化
- 237. Delete Node in a Linked List
- 116. Populating Next Right Pointers in Each Node
- 19. Remove Nth Node From End of List
- 《超实用的Node.js代码段》连载一:获取Buffer对象字节长度
- hadoop集群搭建datenode为0问题的解决
- ubuntu node.js npm
- no datanode to stop
- forever nodejs管理进程
- DistRaidNode的实现
- nodejs总结
- 关于express下session的几个注意事项