Node.js實(shí)用代碼段之獲取Buffer對象字節(jié)長度
我們知道Node.js框架下的Buffer對象能夠?qū)ΧM(jìn)制數(shù)據(jù)提供很好的支持,那么獲取一個(gè)Buffer對象真實(shí)的字節(jié)長度則是必須要用到的功能了。Node.js框架為開發(fā)人員提供了一個(gè)Buffer.byteLength()方法,下面我們借助一個(gè)官方文檔提供的例程向讀者演示一下該方法的使用過程。
本例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行代碼定義并初始化了一個(gè)字符串變量,其變量名為str,數(shù)據(jù)內(nèi)容為\u00bd + \u00bc = \u00be,讀者可以去相關(guān)網(wǎng)站查閱一下這幾個(gè)16進(jìn)制編碼,\u00bd代表字符"½",\u00bc代表字符"¼",\u00be代表字符"¾";然后,在第08行代碼通過打印輸出str.length屬性來顯示字符串變量str的長度,通過Buffer.byteLength()方法來顯示字符串變量str的真實(shí)字節(jié)長度,關(guān)于Buffer.byteLength()方法的語法說明如下:
語法:Buffer.byteLength(string[, encoding])
該方法返回一個(gè)Number數(shù)字,用來表示string參數(shù)的真實(shí)字節(jié)長度,encoding參數(shù)默認(rèn)為"utf8"編碼格式。
從圖4.4中顯示的結(jié)果可以看到,字符串str的length屬性為9個(gè)字符長度,而占用字節(jié)長度為12 個(gè),因此我們可以知道"½"、"¼"和"¾"這3個(gè)字符其實(shí)占用了兩個(gè)字節(jié)的長度。

提示:本節(jié)我們需要了解字符與字節(jié)這兩個(gè)概念的異同,在計(jì)算機(jī)編碼中一個(gè)字節(jié)占用8 bit(1 byte = 8 bit),而一個(gè)字符可能是一個(gè)單字節(jié)字符,也可能是雙字節(jié)字符。另外,Buffer.byteLength()方法在寫http響應(yīng)頭時(shí)經(jīng)常要用到,如果想改寫http響應(yīng)頭Cotent-Length時(shí),千萬記得一定要用Buffer.byteLength()方法,而不要使用 String.prototype.length屬性。
以上就是為大家分享的第一個(gè)超實(shí)用的Node.js代碼段,下面還有更多精彩的Node.js代碼段,不要錯(cuò)過,希望對大家的學(xué)習(xí)有所幫助。
相關(guān)文章
Node.js中module.exports?和exports使用誤區(qū)
本文主要介紹了Node.js中module.exports?和exports使用誤區(qū),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-01-01
node.js中ws模塊創(chuàng)建服務(wù)端和客戶端,網(wǎng)頁WebSocket客戶端
今天小編就為大家分享一篇關(guān)于node.js中ws模塊創(chuàng)建服務(wù)端和客戶端,網(wǎng)頁WebSocket客戶端,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-03-03
在nodeJs中如何修改json文件中的數(shù)據(jù)
這篇文章主要介紹了在nodeJs中如何修改json文件中的數(shù)據(jù),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10

