Dalam Node.js, kita boleh menggunakan objek Penampan untuk menukar data perenambelasan kepada rentetan.
Objek Penampan ialah objek terbina dalam dalam API Node.js, digunakan untuk memproses data binari, termasuk data yang diwakili dalam format perenambelasan. Kita boleh menggunakan kaedah Buffer.from()
untuk menukar data heksadesimal kepada objek Penampan yang sepadan dan mengeluarkannya sebagai rentetan. Sebagai contoh, dengan mengandaikan kita mempunyai rentetan perenambelasan 48656c6c6f20576f726c64
, kita boleh menukarnya kepada rentetan menggunakan kod berikut:
const hexString = '48656c6c6f20576f726c64'; const buf = Buffer.from(hexString, 'hex'); const str = buf.toString('utf8'); console.log(str);
Di sini kaedah Buffer.from()
menukarkan hexString
kepada perenambelasan , dan menyimpan hasilnya dalam pembolehubah buf
. Kemudian, kami menggunakan kaedah buf.toString()
untuk menyahkodnya menjadi rentetan berformat utf8. Ini akan mengeluarkan Hello World
.
Jika data perenambelasan kami dibatasi ruang, kami boleh menggunakan kaedah String.prototype.split()
untuk membahagikannya kepada nilai perenambelasan individu dan menggunakan kaedah Buffer.from()
untuk menukarnya kepada rentetan. Sebagai contoh, dengan mengandaikan kita mempunyai rentetan heksadesimal 48 65 6c 6c 6f 20 57 6f 72 6c 64
, kita boleh menukarnya kepada rentetan menggunakan kod berikut:
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);
Di sini kaedah hexString.split(' ')
membahagikan hexString
kepada rentetan yang mengandungi setiap tatasusunan daripada nilai heksadesimal. Kemudian kami menukarnya kepada rentetan menggunakan kaedah Buffer.from()
.
Walau bagaimanapun, perlu diingatkan bahawa jika data perenambelasan kami mengandungi aksara haram, ia tidak akan ditukar kepada rentetan dengan betul. Jika kami cuba menukar rentetan berikut 48656c6c6f20576f726c6447
kepada rentetan, ralat akan berlaku kerana ia mengandungi aksara heksadesimal haram 47
:
const hexString = '48656c6c6f20576f726c6447'; const buf = Buffer.from(hexString, 'hex'); const str = buf.toString('utf8'); console.log(str); // 报错
Dalam kes ini, kami Anda boleh mengelakkan ranap program dengan menggunakan pengendali ralat semasa memanggil kaedah Buffer.from()
. Sebagai contoh, kita boleh menggunakan kod berikut:
const hexString = '48656c6c6f20576f726c6447'; let str; try { const buf = Buffer.from(hexString, 'hex'); str = buf.toString('utf8'); } catch (err) { console.error(err); str = ''; } console.log(str); // 输出空字符串
Blok try..catch
di sini menangkap ralat kaedah Buffer.from()
dan menetapkan str
kepada rentetan kosong untuk mengelakkan atur cara daripada ranap. Kita boleh melaraskan pengendali pengecualian dengan sewajarnya mengikut situasi tertentu.
Ringkasnya, menukar data perenambelasan kepada rentetan dalam Node.js ialah tugas biasa, dan kami boleh menggunakan fungsi berkaitan objek Penampan untuk menyelesaikan kerja ini.
Atas ialah kandungan terperinci nodejs perenambelasan kepada rentetan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!