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 です。読者は関連する Web サイトにアクセスして、u00bd が文字「 1/2」を表すことを確認できます。 "、u00bc は文字 "⁄"、u00be は文字 "¾" を表します。コードの 08 行目では、str.length プロパティを出力することで文字列変数 str の長さが表示され、文字が表示されます。 Buffer.byteLength() メソッドによる文字列変数 str の実際のバイト長 Buffer.byteLength() メソッドの構文は次のとおりです。
構文: Buffer.byteLength(string[, エンコーディング])
このメソッドは、文字列パラメータの実際のバイト長を表す数値を返します。エンコード パラメータのデフォルトは「utf8」エンコード形式です。
ヒント: このセクションでは、文字とバイトの 2 つの概念の類似点と相違点を理解する必要があります。コンピューターのコーディングでは、1 バイトは 8 ビットを占めます (1 バイト = 8 ビット) であり、文字は 1 バイト文字または 2 バイト文字の場合があります。また、http 応答ヘッダーの Cotent-Length を書き換える場合は、String.prototype length ではなく Buffer.byteLength() メソッドを使用することがよくあります。属性。
上記は、最初に共有した非常に実用的な Node.js コード スニペットです。以下にさらに興味深い Node.js コード スニペットがあり、皆さんの学習に役立つことを願っています。