Rumah > hujung hadapan web > Soal Jawab bahagian hadapan > Bagaimana untuk menyelesaikan nodejs nilai pulangan kod kacau

Bagaimana untuk menyelesaikan nodejs nilai pulangan kod kacau

PHPz
Lepaskan: 2023-04-06 10:24:48
asal
1342 orang telah melayarinya

Node.js ialah persekitaran masa jalan JavaScript yang popular berdasarkan enjin Chrome V8 untuk membangunkan aplikasi sebelah pelayan. Apabila membina aplikasi web dengan Node.js, mengembalikan hasil respons yang betul adalah penting. Walau bagaimanapun, sesetengah pembangun mungkin menghadapi masalah biasa semasa menulis aplikasi Node.js, iaitu "Nilai pulangan Node.js bercelaru". Artikel ini akan menerangkan punca dan penyelesaian kepada masalah ini.

1. Apakah itu kod bercelaru?

Watak bercelaru merujuk kepada simbol yang tidak dapat dikenali dalam rentetan yang muncul semasa penukaran pengekodan, yang dipanggil "blok hitam", teks bercelaru, dsb. Aksara bercelaru biasanya disebabkan oleh ralat penukaran pengekodan.

2. Sebab mengapa nilai pulangan Node.js bercelaru

Nilai pulangan bercelaru Node.js biasanya disebabkan oleh ketidakpadanan dalam pengekodan aksara. Pengekodan aksara ialah kaedah penukaran nombor kepada aksara dalam bidang sains komputer Untuk aksara Cina, pengekodan UTF-8 biasanya digunakan. Memandangkan Node.js menggunakan pengekodan UTF-8 secara lalai, pengekodan UTF-8 digunakan secara meluas.

Walau bagaimanapun, apabila Node.js menerima pengekodan aksara yang tidak sepadan, nilai pulangan akan bercelaru. Ini boleh berlaku apabila:

  1. menerima data luaran daripada pengekodan bukan UTF-8
  2. Node.js tidak dikonfigurasikan dengan betul untuk pengekodan
  3. aksara Tetapan pengekodan yang salah

3. Bagaimana untuk menyelesaikan masalah nilai pulangan Node.js yang bercelaru

  1. Sahkan pengekodan aksara

Pertama, anda perlu mengesahkan aksara Adakah pengekodan betul? Anda boleh mengesahkan sama ada pengekodan aksara adalah betul dengan:

console.log(process.stdout.encoding);
Salin selepas log masuk

Output mestilah UTF-8.

  1. Tetapkan pengekodan aksara

Anda boleh menetapkan pengekodan aksara eksplisit untuk memastikan data atau respons yang diperoleh dari luar dikodkan dengan betul. Pengekodan aksara boleh ditetapkan menggunakan kod berikut:

res.writeHead(200, {'Content-Type': 'text/plain; charset=utf-8'});
Salin selepas log masuk
  1. Tukar pengekodan aksara

Jika data luaran atau respons sudah dikodkan, anda boleh menggunakan Node. objek Penampan js untuk menukar Tukarkannya kepada pengekodan aksara yang betul. Kod berikut menunjukkan cara menukar data teks biasa daripada pengekodan ISO-8859-1 kepada pengekodan UTF-8:

var iconv = require('iconv-lite');
var result = iconv.decode(Buffer.from(inputData, 'binary'), 'iso-8859-1');
console.log(result.toString('utf-8'));
Salin selepas log masuk
  1. Mengkonfigurasi Node.js

dalam Node Dalam fail konfigurasi .js, anda boleh menetapkan pengekodan aksara lalai. Fail konfigurasi boleh dibuat pada baris arahan menggunakan kod berikut:

sudo nano /etc/rc.local
Salin selepas log masuk

Tambah baris berikut pada penghujung fail:

export LANG=en_US.UTF-8
Salin selepas log masuk

Ini akan menetapkan pengekodan lalai daripada Node.js kepada UTF-8.

5. Kesimpulan

Dalam Node.js, mengembalikan respons yang betul adalah penting untuk membina aplikasi web. Jika anda menghadapi masalah nilai pulangan yang bercelaru daripada Node.js, ia biasanya disebabkan oleh ketidakpadanan dalam tetapan pengekodan aksara. Isu ini boleh diselesaikan dengan mudah dengan mengesahkan dan menetapkan pengekodan aksara yang betul. Jika anda masih mengalami isu, kami mengesyorkan anda menyemak dokumentasi untuk Node.js atau menghubungi komuniti pembangunan untuk mendapatkan bantuan lanjut menyelesaikan isu ini.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan nodejs nilai pulangan kod kacau. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan