Node.js では、Buffer オブジェクトを使用して 16 進データを文字列に変換できます。
Buffer オブジェクトは Node.js API の組み込みオブジェクトであり、16 進数形式で表されるデータを含むバイナリ データを処理するために使用されます。 Buffer.from()
メソッドを使用すると、16 進データを対応する Buffer オブジェクトに変換し、文字列として出力できます。たとえば、16 進文字列 48656c6c6f20576f726c64
があると仮定すると、次のコードを使用して文字列に変換できます。
const hexString = '48656c6c6f20576f726c64'; const buf = Buffer.from(hexString, 'hex'); const str = buf.toString('utf8'); console.log(str);
hereBuffer.from()
Method Converts hexString
を 16 進数に変換し、結果を buf
変数に保存します。次に、buf.toString()
メソッドを使用して、utf8 形式の文字列にデコードします。これにより、Hello World
が出力されます。
16 進データがスペースで区切られている場合は、String.prototype.split()
メソッドを使用して個々の 16 進値に分割し、Buffer.from を使用できます。 ()
メソッドで文字列に変換します。たとえば、16 進文字列 48 65 6c 6c 6f 20 57 6f 72 6c 64
があると仮定すると、次のコードを使用して文字列に変換できます。 #hexString.split(' ')
hexString を各 16 進値を含む配列に分割します。次に、
Buffer.from() メソッドを使用して文字列に変換します。
ただし、16 進データに不正な文字が含まれている場合、文字列に正しく変換できないことに注意してください。次の文字列
48656c6c6f20576f726c6447
47 が含まれているため、エラーが発生します:
const hexString = '48 65 6c 6c 6f 20 57 6f 72 6c 64'; const hexArr = hexString.split(' '); const buf = Buffer.from(hexArr, 'hex'); const str = buf.toString('utf8'); console.log(str);
この場合、次のようにできます。
Buffer.from() メソッドを呼び出すときにエラー ハンドラーを使用して、プログラムのクラッシュを回避します。たとえば、次のコードを使用できます。 const hexString = '48656c6c6f20576f726c6447'; const buf = Buffer.from(hexString, 'hex'); const str = buf.toString('utf8'); console.log(str); // 报错
ここの
try..catch ブロックは、Buffer.from() メソッドと
からのエラーをキャッチします。 str プログラムがクラッシュしないようにするには、空の文字列に設定します。特定の状況に応じて例外ハンドラーを適切に調整できます。
つまり、16 進データを文字列に変換するのは Node.js の一般的なタスクであり、Buffer オブジェクトの関連関数を使用してこの作業を完了できます。
以上がnodejsの16進数から文字列への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。