Dengan perkembangan pesat Internet, semakin banyak tapak web mula menggunakan pengekodan Unicode (seperti UTF-8, dll.) untuk mewakili teks. Tetapi di China, pengekodan GBK masih merupakan kaedah pengekodan aksara biasa, terutamanya pada beberapa laman web lama. Bagi jurutera hadapan, amat perlu untuk memahami cara menangani teks bercelaru yang dikodkan oleh GBK. Dalam artikel ini, kami akan memperkenalkan beberapa kaedah pengendalian pengekodan GBK dalam JavaScript dan memberikan kod sampel yang sepadan.
1. Pengenalan kepada pengekodan GBK
Pengekodan GBK ialah kaedah pengekodan aksara dua bait yang menggunakan 2 bait untuk mewakili aksara Ia biasanya digunakan untuk mewakili bahasa Cina dan simbol. Menurut standard kebangsaan China GB2312, pengekodan GBK mengandungi set aksara GB2312 dan juga mengandungi sejumlah besar aksara dan simbol Cina.
2. Masalah dengan pengekodan GBK
Memandangkan pengekodan GBK tidak serasi dengan pengekodan Unikod, jika anda memproses secara langsung teks yang dikodkan GBK dalam JavaScript, aksara yang bercelaru akan muncul, seperti yang ditunjukkan dalam rajah berikut:
3. Tukar pengekodan GBK kepada pengekodan Unikod
Untuk menyelesaikan masalah kod bercelaru, kita perlu menukar pengekodan GBK kepada pengekodan Unikod. Dalam JavaScript, kita boleh menggunakan perpustakaan yang dipanggil 'GBK' untuk melakukan penukaran.
Pertama, kita perlu memasang perpustakaan 'GBK', yang boleh dilakukan dalam konsol dengan arahan berikut:
npm install gbk
Selepas pemasangan selesai, kita boleh menggunakan yang berikut kod untuk menukar rentetan berkod GBK Kod rentetan untuk Unikod:
const gbk = require('gbk'); const gbkStr = 'GBK编码字符串'; const unicodeStr = gbk.toString('ucs2', gbkStr); console.log(unicodeStr);
Dalam kod di atas, kami mula-mula memperkenalkan objek 'gbk' melalui perpustakaan 'GBK', kemudian tentukan rentetan berkod GBK 'gbkStr' , dan akhirnya gunakan kaedah 'gbk toString' untuk menukarnya menjadi rentetan yang dikodkan Unicode dan mengeluarkan hasilnya.
4. Tukar pengekodan Unikod kepada pengekodan GBK
Menukar pengekodan Unikod kepada pengekodan GBK juga memerlukan penggunaan perpustakaan 'GBK' Contoh kod adalah seperti berikut:
const gbk = require('gbk'); const unicodeStr = 'Unicode编码字符串'; const gbkStr = gbk.toString('gbk', unicodeStr, 0); console.log(gbkStr);
Dalam kod di atas, kami juga memperkenalkan objek 'gbk' melalui perpustakaan 'GBK', mentakrifkan rentetan pengekodan Unicode 'unicodeStr' dan akhirnya menggunakan kaedah 'gbk.toString' untuk menukarnya menjadi pengekodan GBK rentetan dan keluarkan hasilnya.
5. Gunakan perpustakaan iconv-lite
Selain perpustakaan 'GBK', kami juga boleh menggunakan perpustakaan lain yang dipanggil 'iconv-lite' untuk menukar pengekodan GBK. Pustaka 'iconv-lite' menyokong pengekodan GBK, jadi ia boleh digunakan secara langsung.
Berikut ialah contoh kod untuk menukar rentetan yang dikodkan GBK kepada rentetan yang dikodkan Unikod:
const iconv = require('iconv-lite'); const gbkStr = 'GBK编码字符串'; const unicodeStr = iconv.decode(Buffer.from(gbkStr, 'binary'), 'gbk'); console.log(unicodeStr);
Dalam kod di atas, kami mula-mula memperkenalkan ' melalui perpustakaan 'iconv-lite' iconv', kemudian tentukan rentetan GBK yang dikodkan 'gbkStr', dan akhirnya gunakan kaedah 'iconv.decode' untuk menukarnya menjadi rentetan yang dikodkan Unicode dan mengeluarkan hasilnya.
Begitu juga, kami juga boleh menggunakan perpustakaan 'iconv-lite' untuk menukar rentetan yang dikodkan Unikod kepada rentetan yang dikodkan GBK Contoh kod adalah seperti berikut:
const iconv = require('iconv-lite'); const unicodeStr = 'Unicode编码字符串'; const gbkStr = iconv.encode(unicodeStr, 'gbk').toString('binary'); console.log(gbkStr);
Dalam kod di atas, kami Juga memperkenalkan objek 'iconv' melalui perpustakaan 'iconv-lite', mentakrifkan rentetan pengekodan Unicode 'unicodeStr', dan akhirnya menggunakan kaedah 'iconv.encode' untuk menukarnya menjadi rentetan pengekodan GBK dan mengeluarkan hasilnya.
6. Ringkasan
Di atas ialah beberapa cara untuk mengendalikan pengekodan GBK dalam JavaScript. Walaupun banyak laman web telah menggunakan pengekodan Unicode secara beransur-ansur, masih terdapat banyak laman web lama yang menggunakan pengekodan GBK. Oleh itu, amat perlu bagi jurutera hadapan untuk menguasai kaedah menyelesaikan pengekodan GBK aksara bercelaru.
Atas ialah kandungan terperinci Mari kita bincangkan tentang beberapa kaedah memproses pengekodan GBK dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!