Node.js löst das Problem verstümmelter chinesischer Zeichen in Clientanforderungsdaten

Node.js löst das Problem verstümmelter chinesischer Zeichen in Clientanforderungsdaten

Node.js löst das Problem verstümmelter chinesischer Zeichen in Clientanforderungsdaten

Beispielcode:

var http = erforderlich('http');
var server = http.createServer();
server.on('Anforderung',Funktion(req,res){
    // res.end("Hallo Welt");
    res.end("Hallo Welt");
});
server.listen(3000,Funktion(){
    console.log("Server läuft");
});

Bildbeschreibung hier einfügen

Grund:

Die standardmäßig an den Server gesendeten Daten sind tatsächlich UFT8-codierte Inhalte

Der Browser weiß jedoch nicht, dass es sich um UFT8-codierte Inhalte handelt

Wenn der Browser die Kodierung des Antwortinhalts des Servers nicht kennt, führt er ihn gemäß der Standardkodierung des aktuellen Betriebssystems aus.

Die Standardeinstellung für chinesische Betriebssysteme ist GBK

Lösung: Der richtige Weg besteht darin, dem Browser mitzuteilen, welche Art von Daten ich Ihnen sende res.setHeader('Content-Type','text/plain;charset=utf-8'); Achten Sie darauf, im Connector keinen Fehler zu machen, und schreiben Sie utf-8 nicht willkürlich. Im http-Protokoll wird der Inhaltstyp verwendet, um der anderen Partei mitzuteilen, welche Art von Daten ich Ihnen sende, und der Typ wird unmittelbar danach geschrieben.

var http = erforderlich('http');
var server = http.createServer();
server.on('Anforderung',Funktion(req,res){
    // res.end("Hallo Welt");
    res.setHeader('Inhaltstyp','text/plain;charset=utf-8');
    res.end("Hallo Welt");
});
server.listen(3000,Funktion(){
    console.log("Server läuft");
});

Bildbeschreibung hier einfügen
Beachten Sie, dass es viele Arten gibt

Antwort-Inhaltstyp Content-Type

var http = erforderlich('http');
var server = http.createServer();
server.on('Anforderung',Funktion(req,res){
    wenn(req.url==='/plain'){
        res.setHeader('Inhaltstyp','text/plain;charset=utf-8');
        res.end("Hallo Welt");
    }sonst wenn(req.url==='/html'){
        res.setHeader('Inhaltstyp','text/html;charset=utf-8');
        res.end("<h1>Hallo Welt<br/> hallo Welt</h1>");
    }
   
});
server.listen(3000,Funktion(){
    console.log("Server läuft");
});

Gibt unterschiedliche Content-Type-Formate entsprechend den unterschiedlichen Anforderungspfaden zurück.

Bildbeschreibung hier einfügen

Dies ist das Ende dieses Artikels über die Methode von node.js zur Lösung des Problems chinesischer verstümmelter Zeichen in Clientanforderungsdaten. Weitere relevante Inhalte zu verstümmelten Zeichen in Node-Clientanforderungsdaten finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Ein einfacher UDP-Broadcast-Server und -Client, implementiert von Nodejs
  • Detaillierte Erläuterung der Knoten-HTTP-Anforderung Client-Anforderung
  • Beispiel für einen HTTP-Anforderungsclient in Node.js (Anforderungsclient)
  • Beispiel für Server- und Clientfunktionen, die durch einen NodeJS-Socket implementiert werden
  • NodeJS implementiert clientseitige JS-Verschlüsselung
  • Detaillierte Erklärung des Nodejs TCP-Server- und Client-Chat-Programms
  • Beispiel für die Verwendung des NodeJS-HTTP-Moduls [Erstellen eines Webservers/Clients]
  • Node.js verwendet das http-Modul, um ein vollständiges Beispiel für Server und Client zu erstellen

<<:  Eine detaillierte Einführung in die Linux-Systemkonfiguration (Dienststeuerung)

>>:  Zwei Möglichkeiten, HTML zu implementieren, um Inhaltspositionen zufällig zu verschieben

Artikel empfehlen

Probleme beim Springen auf HTML-Seiten und bei der Parameterübertragung

HTML-Seitensprung: Fenster.öffnen(URL, "&quo...

Eine kurze Analyse der Verwendung der Zero-Copy-Technologie in Linux

In diesem Artikel werden mehrere wichtige Zero-Co...

Grundlegende Anwendungsmethoden für eingebettete und externe JavaScript-Links

Inhaltsverzeichnis Grundlegende Anwendung eingebe...

Vue-Ereignisparameter $event = Ereigniswertfall

Vorlage <el-table :data="Datenliste"...

Die Fallstricke beim Erlernen von Vue.js

Inhaltsverzeichnis Klasse void zeigen ES6-Pfeilfu...

Ein kurzer Vortrag über MySQL-Pivottabellen

Ich habe eine Produktteiletabelle wie diese: Teil...

Beispiel für die Validierung eines JavaScript-Formulars

HTML-Formulare werden häufig verwendet, um Benutz...

10 Gründe, warum Linux immer beliebter wird

Linux wird von immer mehr Benutzern geliebt. Waru...

So zeigen Sie den Startparameterbefehl „Docker Run“ an (empfohlen)

Verwenden Sie runlike, um die Docker Run-Startpar...