Untuk waktu yang lama, JavaScript kurang mendukung penanganan array data biner. Itu berubah dengan ECMAScript 2015, ketika array yang diketik diperkenalkan dan memungkinkan penanganan yang lebih baik dari kasus-kasus tersebut
Semua jenis ini turun dari kelas TypedArray abstrak, masing-masing mengkhususkan diri pada ukuran dan penandatanganan kata bilangan bulat tertentu, dan beberapa menyediakan dukungan floating-point. Float64Array, misalnya, mewakili larik angka floating-point 64-bit;
Dari semua tipe array, yang paling berguna mungkin adalah Uint8Array. Ini memungkinkan penanganan data biner seperti file gambar, protokol jaringan, dan streaming video dengan cara yang mirip dengan yang dilakukan dalam bahasa pemrograman lain.
Di dalam Node. js dunia, ada kelas lain, Buffer, yang diturunkan dari Uint8Array. Itu menambahkan beberapa metode utilitas seperti concat(), allocUnsafe(), dan compare(), dan metode untuk membaca dan menulis berbagai tipe numerik, meniru apa yang ditawarkan oleh kelas DataView (mis. readUint16BE, writeDoubleLE, dan swap32)
Pengodean Teks
Subjek pengkodean karakter teks menggunakan komputer sangat luas dan kompleks dan saya tidak akan mempelajarinya secara mendalam di artikel singkat ini
Secara konseptual, teks terdiri dari karakter. bagian terkecil dari konten yang bermakna - biasanya huruf, tetapi tergantung pada bahasanya mungkin ada simbol lain yang sangat berbeda. Kemudian setiap karakter diberi titik kode. nomor yang mengidentifikasinya dalam hubungan satu-ke-satu
Akhirnya, setiap titik kode dapat diwakili oleh urutan bit sesuai dengan pengkodean. Pengkodean adalah tabel yang memetakan setiap titik kode ke string bit yang sesuai
Ini mungkin terlihat seperti pemetaan sederhana, tetapi beberapa pengkodean telah dibuat dalam beberapa dekade terakhir untuk mengakomodasi banyak arsitektur komputer dan rangkaian karakter yang berbeda.
Pengkodean yang paling luas adalah ASCII
Ini termasuk karakter Latin dasar (A-Z, huruf besar dan kecil), angka, dan banyak simbol tanda baca, selain beberapa karakter kontrol. ASCII adalah pengkodean 7-bit, tetapi komputer menyimpan data dalam blok 8-bit yang disebut byte, sehingga banyak pengkodean 8-bit dibuat, memperluas 128 karakter ASCII pertama dengan 128 karakter khusus bahasa lainnya
Pengkodean yang sangat umum adalah ISO-8859-1, juga dikenal dengan beberapa nama lain seperti "latin1", "IBM819", "CP819", dan bahkan "WE8ISO8859P1". ISO-8859-1 menambahkan beberapa simbol ekstra ke ASCII dan banyak huruf beraksen seperti Á, Ú, È, dan Õ
Pengkodean khusus bahasa tersebut bekerja dengan cukup baik untuk beberapa situasi tetapi gagal total dalam konteks multi-bahasa
Kehilangan informasi dan kerusakan data adalah hal biasa karena program mencoba memanipulasi teks menggunakan penyandian file yang salah
Bahkan menampilkan konten file pun berantakan, karena file teks tidak menyertakan nama pengkodean yang digunakan untuk menyandikan kontennya
Mencoba memperbaikinya, standar Unicode dimulai pada 1980-an. Tujuan mereka adalah memetakan setiap karakter yang saat ini digunakan dalam setiap bahasa manusia (dan beberapa skrip bersejarah) ke satu titik kode
Standar Unicode juga menentukan sejumlah pengkodean umum yang dapat mengkodekan setiap titik kode Unicode
Pengkodean paling umum untuk Unicode adalah UTF-16, UCS-2, UTF-32, dan UTF-8. Kecuali untuk UCS-2, yang menggunakan lebar tetap untuk semua titik kode (sehingga mencegahnya untuk mewakili semua karakter Unicode), semua pengkodean ini menggunakan sejumlah bit variabel untuk menyandikan setiap titik kode
Di web, penyandian Unicode yang paling banyak digunakan adalah UTF-8, karena cukup efisien untuk banyak penggunaan. Ini menggunakan 1 byte untuk karakter ASCII, dan 2 byte untuk sebagian besar skrip Eropa dan Timur Tengah - tetapi kurang efisien untuk skrip Asia, membutuhkan 3 byte atau lebih. Misalnya, pepatah Prancis "Il vaut mieux prévenir que guérir" setara dengan urutan byte berikut saat dikodekan menggunakan UTF-8 (byte ditampilkan dalam heksadesimal)
Mengkonversi Buffer ke String Node. js
Karena itu, konten Buffer dapat dengan cepat diubah menjadi String menggunakan
const b = Buffer.from([101, 120, 97, 109, 112, 108, 101]); console.log(b.toString()); // exampleIngat pidato tentang pengkodean teks?
const b = Buffer.from([101, 120, 97, 109, 112, 108, 101]); console.log(b.toString('latin1')); // example_Sebagian besar waktu, UTF-8 adalah pilihan terbaik untuk membaca dan menulis. Namun untuk kelengkapan, berikut adalah daftar lengkap di Node.js. js (per September/2021) - nama tidak peka huruf besar-kecil
EncodingAccepted aliasesasciibase64base64urlhexlatin1binaryucs2ucs-2utf8utf-8utf16leutf-16leKonversi Node. js String ke Buffer
Dimungkinkan juga untuk mengonversi data ke arah yang berlawanan. Mulai dari string, Anda dapat darinya (jika penyandian tidak ditentukan, Node. js mengasumsikan UTF-8)
const s = Buffer.from('example', 'utf8'); console.log(s); // <Buffer 65 78 61 6d 70 6c 65>Jika Anda perlu menulis teks ke objek Buffer yang ada, Anda dapat menggunakannya
const b = Buffer.alloc(10); console.log(b); // <Buffer 00 00 00 00 00 00 00 00 00 00> b.write('example', 'utf8'); console.log(b); // <Buffer 65 78 61 6d 70 6c 65 00 00 00>Anda bahkan dapat mengatur posisi awal (offset)
const b = Buffer.alloc(10); b.write('test', 4, 'utf8'); console.log(b); // <Buffer 00 00 00 00 74 65 73 74 00 00>_Kesimpulan
Singkatnya, mudah untuk mengonversi objek Buffer menjadi string menggunakan metode toString(). Anda biasanya menginginkan pengkodean UTF-8 default, tetapi Anda dapat menunjukkan pengkodean yang berbeda jika diperlukan. Untuk mengonversi dari string ke objek Buffer, gunakan Buffer statis. metode from() - sekali lagi secara opsional meneruskan pengkodean
Jika Anda seorang Node. Jika pengembang js tertarik untuk memajukan pengetahuan Anda, tambahkan postingan ini ke daftar bacaan Anda
- Node. Arsitektur js (masalah umum dan cara memperbaikinya)
- Antrian di Node. js (semua jenis dijelaskan)
- Node Kontainer. Aplikasi js Dengan Docker (panduan praktis)
- Node. js Discord Bot (cara membuatnya)
FAQ
Q. Apakah buffer string?
String adalah urutan karakter, tetapi buffer adalah urutan byte. Meskipun buffer mungkin berisi konten yang dikodekan dari nilai string, buffer juga dapat mengkodekan jenis nilai lain atau data biner apa pun
Q. Apa yang dilakukan buffer di node JS?
Buffer memungkinkan penyimpanan dan manipulasi array byte, terutama saat bekerja dengan file. fungsi seperti fs. readFile mengembalikan objek Buffer saat membaca file biner. Fungsi juga penting untuk menangani komunikasi jaringan dan pemrosesan gambar
Q. Apa itu objek buffer dalam pemrograman?
Objek buffer adalah cara untuk abstrak urutan atau array byte. Selain operasi array umum seperti mendapatkan dan mengubah satu atau lebih elemen array byte, buffer biasanya memiliki metode lanjutan untuk membaca dan menulis nilai yang lebih kompleks seperti bilangan bulat, bilangan titik-mengambang, dan string.
Kami sedang merekrut
Jika Anda bersemangat tentang Node. js, datang dan bergabunglah dengan kami di Adeva. Kami selalu mencari talenta baru untuk bergabung dengan jaringan kami