nodejs postet chinesischen verstümmelten Code

WBOY
Freigeben: 2023-05-11 12:23:36
Original
549 Leute haben es durchsucht

Node.js ist eine beliebte serverseitige JavaScript-Engine, die in der Webentwicklung weit verbreitet ist. Bei der Verarbeitung von POST-Anfragen erscheinen chinesische Schriftzeichen jedoch häufig verstümmelt, was zu einer Reihe von Problemen führen kann.

Der Grund für das Problem liegt darin, dass im HTTP-Protokoll der Datenentitätsteil der POST-Anfrage durch die im Content-Type-Header angegebene Codierungsmethode codiert wird. Wenn der Client, der die Anfrage sendet, und der Server, der die Anfrage empfängt, unterschiedliche Codierungsmethoden verwenden, werden chinesische Schriftzeichen verstümmelt.

Der Schlüssel zur Lösung dieses Problems besteht also darin, sicherzustellen, dass beim Anfordern von Daten und beim Empfangen von Daten dieselbe Codierung verwendet wird. Hier sind einige Lösungen:

  1. Angabe der Anforderungskodierungsmethode

Beim Senden einer POST-Anfrage können Sie die Anforderung angeben, indem Sie den Inhalt festlegen. Typ Header Wie die Daten codiert werden. Wenn die Anfrage chinesische Zeichen enthält, können Sie den Content-Type-Header auf application/x-www-form-urlencoded;charset=utf-8 setzen, d. h. die UTF-8-Kodierung zum Kodieren verwenden:

const data = new URLSearchParams();
data.append('username', '张三');
data.append('password', '123456');
fetch('/login', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8'
  },
  body: data
});
Nach dem Login kopieren
#🎜 🎜#
    Angabe der Antwortkodierungsmethode
Beim Empfang einer POST-Anfrage können Sie die Kodierungsmethode der Antwortdaten angeben, indem Sie den Content-Type-Header festlegen. Wenn die Antwort chinesische Zeichen enthält, können Sie den Content-Type-Header ebenfalls auf text/html;charset=utf-8 setzen, der mit UTF-8-Codierung codiert wird:

app.post('/login', (req, res) => {
  res.setHeader('Content-Type', 'text/html;charset=utf-8');
  res.send('<p>登录成功</p>');
});
Nach dem Login kopieren

#🎜🎜 # Verwenden Sie Middleware, um die Kodierung zu handhaben
  1. Sie können Middleware verwenden, um das Kodierungsproblem von POST-Anfragen zu lösen. Die Body-Parser-Middleware ist eine gängige Lösung, die die Kodierung von Anfragedaten automatisch übernimmt und sicherstellt, dass beim Empfangen und Senden von Daten in der Anfrage dieselbe Kodierung verwendet wird:
const express = require('express');
const bodyParser = require('body-parser');
const app = express();
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.post('/login', (req, res) => {
  const { username, password } = req.body;
  console.log(username, password);
  res.send('<p>登录成功</p>');
});
Nach dem Login kopieren

In diesem Beispiel ist der Body-Parser Parser-Middleware wird der Anwendung hinzugefügt und für die Kodierung von POST-Anfragen verwendet.

Im Allgemeinen erfordert die Behandlung des chinesischen verstümmelten Problems bei POST-Anfragen die Sicherstellung, dass die Kodierung der Anfrage und Antwort konsistent ist und dass Middleware zur Behandlung des Kodierungsproblems korrekt verwendet wird. Diese Lösungen können sicherstellen, dass die Anwendung bei der Verarbeitung von POST-Anfragen keine Probleme mit der chinesischen Verstümmelung hat, wodurch die Kommunikation zwischen dem Benutzer und dem Server besser gehandhabt wird.

Das obige ist der detaillierte Inhalt vonnodejs postet chinesischen verstümmelten Code. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage