Rumah >hujung hadapan web >Soal Jawab bahagian hadapan >Bagaimana untuk menukar rentetan kepada format UTF-8 dalam JavaScript
Dalam pembangunan harian, kita selalunya perlu menukar rentetan ke dalam format UTF-8, kerana UTF-8 ialah kaedah pengekodan aksara universal yang menyokong aksara berbilang bahasa, termasuk bahasa Cina, Jepun, Korea, dsb. JavaScript ialah bahasa skrip yang biasa digunakan yang boleh membantu kami mencapai proses penukaran ini.
Artikel ini akan memperkenalkan cara menukar rentetan ke dalam format UTF-8 dalam JavaScript daripada aspek berikut:
UTF-8 ialah transformasi Pengekodan aksara panjang, peraturan pengekodannya adalah seperti berikut:
Contohnya, kod Unikod bagi aksara Cina "anda" ialah "U+4F60". pengekodan.
Dalam JavaScript, kami boleh menukar rentetan kepada format UTF-8 dengan mudah melalui fungsi pengekodan dan penyahkodan.
Yang pertama ialah fungsi pengekodan Kita boleh menggunakan fungsi encodeURIComponent() untuk menukar rentetan ke dalam format pengekodan URI, dan kemudian menyambung pengekodan URI setiap aksara ke dalam rentetan akhir dalam format UTF-8 kod sampel adalah seperti berikut :
function utf8Encode(str) { let encodedStr = encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => { return String.fromCharCode(parseInt(p1, 16)); }); let utf8Str = ""; for (let i = 0; i < encodedStr.length; i++) { let charCode = encodedStr.charCodeAt(i); if (charCode < 128) { utf8Str += String.fromCharCode(charCode); } else if (charCode < 2048) { utf8Str += String.fromCharCode((charCode >> 6) | 192); utf8Str += String.fromCharCode((charCode & 63) | 128); } else { utf8Str += String.fromCharCode((charCode >> 12) | 224); utf8Str += String.fromCharCode(((charCode >> 6) & 63) | 128); utf8Str += String.fromCharCode((charCode & 63) | 128); } } return utf8Str; }
Antaranya, fungsi encodeURIComponent() digunakan untuk menukar rentetan kepada pengekodan URI, dan fungsi replace() digunakan untuk menyambung pengekodan URI setiap aksara menjadi aksara akhir dalam format UTF-8.
Fungsi penyahkodan menggunakan fungsi decodeURIComponent() untuk menyahkod rentetan yang dikodkan Kod sampel adalah seperti berikut:
function utf8Decode(utf8Str) { let decodedStr = ""; let i = 0; while (i < utf8Str.length) { let charCode = utf8Str.charCodeAt(i); if (charCode < 128) { decodedStr += String.fromCharCode(charCode); i++; } else if (charCode >= 192 && charCode < 224) { decodedStr += String.fromCharCode(((charCode & 31) << 6) | (utf8Str.charCodeAt(i + 1) & 63)); i += 2; } else { decodedStr += String.fromCharCode(((charCode & 15) << 12) | ((utf8Str.charCodeAt(i + 1) & 63) << 6) | (utf8Str.charCodeAt(i + 2) & 63)); i += 3; } } return decodeURIComponent(decodedStr); }
const iconv = require("iconv-lite"); let utf8Str = "欢迎使用 iconv-lite 库"; let buf = iconv.encode(utf8Str, "utf8"); // 转成 UTF-8 Buffer let gbkStr = iconv.decode(buf, "gbk"); // 转成 GBK 编码字符串Dalam kod di atas, kami. gunakan fungsi iconv.encode() untuk menukar Tukar rentetan menjadi Penampan berkod UTF-8, dan kemudian gunakan fungsi iconv.decode() untuk menukar Penampan menjadi rentetan yang dikodkan sepadan. Perlu diingat bahawa untuk menggunakan perpustakaan iconv-lite, anda perlu memasangnya melalui npm terlebih dahulu Kaedah pemasangan ialah:
npm install iconv-liteRingkasanArtikel ini memperkenalkan cara menukar rentetan. ke dalam format UTF- 8. Kami belajar tentang kaedah pengekodan UTF-8, merealisasikan kaedah mudah untuk menukar rentetan kepada UTF-8 melalui fungsi pengekodan dan penyahkodan, dan memperkenalkan penggunaan perpustakaan iconv-lite untuk menyelesaikan tugas transcoding keseluruhan aplikasi. Dalam pembangunan sebenar, memilih kaedah yang sesuai berdasarkan keperluan sebenar dapat mengurangkan kos pembangunan dan meningkatkan kecekapan kerja.
Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan kepada format UTF-8 dalam JavaScript. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!