nodejsの16進数から文字列へ

WBOY
WBOYオリジナル
2023-05-23 17:59:371151ブラウズ

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

を文字列に変換しようとすると、不正な 16 進文字

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。