Node.js ialah masa jalan JavaScript berdasarkan enjin Chrome V8. Salah satu kelebihannya ialah kemudahan JavaScript boleh digunakan untuk membina aplikasi sisi pelayan, menjadikannya pilihan popular untuk membina aplikasi web. Walau bagaimanapun, apabila menggunakan Node.js untuk mengeluarkan aksara Cina, anda kadangkala menghadapi masalah aksara bercelaru.
Terdapat banyak sebab mengapa Node.js mengeluarkan aksara Cina bercelaru di bawah kami akan menyenaraikan beberapa sebab dan penyelesaian yang mungkin.
Node.js menggunakan pengekodan UTF-8 secara lalai, tetapi dalam beberapa kes kaedah pengekodan lain mungkin digunakan, mengakibatkan aksara bercelaru apabila mengeluarkan aksara Cina .
Penyelesaian: Anda boleh menggunakan fungsi console.log()
dan gunakan kaedah Buffer
untuk menukar set aksara menjadi output kepada UTF-8 sebelum output.
console.log(Buffer.from('Hello World', 'utf8').toString('hex')); // e6849fe696873a20476f726c64
Sesetengah terminal tidak boleh memaparkan aksara input dengan betul jika set aksara tidak ditetapkan, mengakibatkan aksara bercelaru apabila mengeluarkan aksara Cina.
Penyelesaian: Tetapkan set aksara dalam terminal, contohnya menggunakan perintah chcp 65001
dalam gesaan arahan Windows. Jika anda menggunakan Mac OS atau Linux, anda boleh memilih untuk menggunakan pengekodan UTF-8 dalam tetapan terminal anda.
Apabila menggunakan modul fs
terbina dalam Node.js untuk membaca atau menulis fail teks, jika pengekodan fail kaedah tidak dinyatakan dengan betul , yang akan mengakibatkan aksara bercelaru apabila mengeluarkan aksara Cina.
Penyelesaian: Tentukan kaedah pengekodan fail, contohnya:
fs.readFile('test.txt', 'utf8', function(err, data) { if (err) throw err; console.log(data); });
Membina Web menggunakan Node.js Apabila menggunakan atur cara, jika pengepala respons HTTP tidak menyatakan kaedah pengekodan dengan betul, aksara bercelaru akan muncul apabila mengeluarkan aksara Cina.
Penyelesaian: Tambahkan kaedah pengekodan set aksara dalam pengepala respons, contohnya:
res.setHeader('Content-type', 'text/html;charset=utf-8'); res.write('<html><head><title>你好</title></head><body>你好</body></html>'); res.end();
Ringkasan:
Di atas adalah beberapa sebab semasa yang mungkin menyebabkan Node. js untuk mengeluarkan aksara dan penyelesaian Cina yang kacau. Anda perlu memberi perhatian kepada isu ini semasa pembangunan dan menggunakan kaedah pemprosesan yang betul apabila mengeluarkan aksara Cina.
Atas ialah kandungan terperinci nodejs mengeluarkan aksara Cina yang kacau. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!