Avec le développement d'Internet, de nombreux développeurs ont commencé à utiliser Node.js pour le développement back-end. Cependant, certains développeurs rencontreront le problème des caractères chinois tronqués lorsqu'ils utiliseront Node.js pour recevoir des caractères chinois. Cette question est à la fois confuse et difficile. Cet article présentera le problème des caractères chinois tronqués reçus par Node.js et proposera plusieurs solutions.
Description du problème
Lorsque vous utilisez Node.js pour recevoir des requêtes contenant des caractères chinois, des caractères parfois tronqués apparaissent, comme le montre la figure ci-dessous :
Comme le montre la figure ci-dessus, les paramètres de la requête reçue contiennent des caractères chinois. , mais sont convertis en charabia. Ce n’est évidemment pas le résultat que nous souhaitons, alors où est le problème ?
Analyse des problèmes
Tout d'abord, nous devons comprendre le principe selon lequel Node.js reçoit les paramètres de requête.
Node.js est une plateforme haute performance basée sur des modèles d'E/S événementiels et non bloquants. Elle écoute le port réseau, déclenche un événement et encapsule la requête dans un objet de requête. . L'objet de requête contient les en-têtes de requête, le corps de la requête et d'autres informations. Lors de la réception du corps de la requête, Node.js utilise par défaut le codage UTF-8 pour le décodage.
Ainsi, si le corps de la requête que nous recevons contient des caractères chinois et que le Content-Type dans l'en-tête de la requête ne définit pas l'encodage du jeu de caractères, UTF-8 sera utilisé pour le décodage par défaut si l'encodage du jeu de caractères est défini dans. l'en-tête de la requête, puis un jeu de caractères spécifique sera utilisé pour le décodage. Cependant, si le codage du jeu de caractères n'est pas défini dans l'en-tête de la demande et que le corps de la demande contient plusieurs codages de jeux de caractères ou des caractères tronqués, Node.js peut provoquer des caractères tronqués lors du décodage.
Solution
Pour le problème des caractères chinois tronqués reçus par Node.js, nous pouvons partir des aspects suivants :
- Encodage uniforme du jeu de caractères
Afin d'éviter le problème de l'encodage du jeu de caractères incohérent, nous pouvons Définissez un codage de jeu de caractères unifié dans l’en-tête de la demande.
Par exemple, nous pouvons définir dans l'en-tête de la requête :
Content-Type: application/x-www-form-urlencoded;charset=utf-8
De cette façon, lors de la réception d'un corps de requête contenant des caractères chinois dans Node.js, il peut être décodé uniformément en utilisant l'encodage UTF-8.
- Forcer l'encodage du jeu de caractères
En plus de définir l'encodage du jeu de caractères dans l'en-tête de la requête, nous pouvons également forcer le décodage du jeu de caractères.
Par exemple, lors de l'utilisation du framework express, nous pouvons utiliser le middleware body-parser et spécifier le codage du jeu de caractères pour le décodage. L'exemple est le suivant :
const bodyParser = require('body-parser') const app = express() app.use(bodyParser.urlencoded({ extended: false, limit: '50mb', parameterLimit: 10000, type: 'application/x-www-form-urlencoded', verify: (req, res, buf) => { req.raw = buf } }))
- Utilisez le module iconv-lite pour décoder
Une autre méthode consiste à utiliser le module iconv-lite pour décoder, l'exemple de code est le suivant :
const iconv = require('iconv-lite') const buffer = Buffer.from('e4b8ade69687', 'hex') const str = iconv.decode(buffer, 'utf8') console.log(str) // 输出:"中文"
- Utilisez le codage de texte module à décoder
Le dernier La solution est d'utiliser le module d'encodage de texte pour le décodage.
Par exemple, lorsque nous utilisons le framework express, nous pouvons utiliser un décodeur d'encodage de texte pour notre analyseur de corps de requête et le définir sur utf-8. Un exemple est le suivant :
const express = require('express') const bodyParser = require('body-parser') const { TextDecoder } = require('text-encoding') const app = express() app.use(bodyParser.json({ verify: function(req, res, buf) { req.body = JSON.parse(new TextDecoder('utf-8').decode(buf)) }}))
Résumé
Cet article présente le problème de code tronqué qui peut survenir lorsque Node.js reçoit des requêtes contenant des caractères chinois, ainsi que plusieurs méthodes pour résoudre ce problème.
Dans le développement Node.js, il est très important de gérer correctement le problème des caractères chinois tronqués. Pour résoudre ce problème, nous pouvons utiliser un codage de jeu de caractères unifié, spécifier de force un codage de jeu de caractères, utiliser le module iconv-lite pour décoder et utiliser le module de codage de texte pour décoder, etc., afin d'éviter les caractères tronqués et de garantir le fonctionnement normal de l'application. J'espère que cet article pourra aider les développeurs à résoudre ce problème.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Les avantages de React sont sa flexibilité et son efficacité, qui se reflètent dans: 1) la conception basée sur les composants améliore la réutilisabilité du code; 2) La technologie DOM virtuelle optimise les performances, en particulier lors de la gestion de grandes quantités de mises à jour de données; 3) L'écosystème riche fournit un grand nombre de bibliothèques et d'outils tiers. En comprenant comment React fonctionne et utilise des exemples, vous pouvez maîtriser ses concepts principaux et les meilleures pratiques pour créer une interface utilisateur efficace et maintenable.

React est une bibliothèque JavaScript pour la construction d'interfaces utilisateur, adaptées aux applications grandes et complexes. 1. Le noyau de React est la composante et le DOM virtuel, qui améliore les performances de rendu d'interface utilisateur. 2. Comparé à Vue, React est plus flexible mais a une courbe d'apprentissage abrupte, qui convient aux grands projets. 3. Comparé à Angular, React est plus léger, dépend de l'écologie communautaire et adapté aux projets qui nécessitent une flexibilité.

React fonctionne en HTML via Dom virtuel. 1) React utilise la syntaxe JSX pour écrire des structures de type HTML. 2) Mise à jour de l'interface utilisateur de gestion DOM virtuelle, rendu efficace via l'algorithme de difficulté. 3) Utilisez Reactdom.Render () pour rendre le composant au vrai Dom. 4) L'optimisation et les meilleures pratiques incluent l'utilisation de react.memo et de division des composants pour améliorer les performances et la maintenabilité.

React est largement utilisé dans le commerce électronique, les médias sociaux et la visualisation des données. 1) Les plates-formes de commerce électronique utilisent React pour construire des composants de panier d'achat, utiliser USESTATE pour gérer l'état, les événements d'ONCLICK pour traiter les événements et cartographier la fonction pour rendre les listes. 2) Les applications de médias sociaux interagissent avec l'API via USEEFFECT pour afficher le contenu dynamique. 3) La visualisation des données utilise la bibliothèque React-ChartJS-2 pour rendre les graphiques, et la conception des composants est facile à intégrer des applications.

Les meilleures pratiques pour React Front-end Architecture comprennent: 1. Conception et réutilisation des composants: Concevoir une seule responsabilité, des composants faciles à comprendre et à tester pour obtenir une réutilisation élevée. 2. Gestion de l'État: utilisez UseState, UserReducer, Contextapi ou Redux / Mobx pour gérer l'état pour éviter une complexité excessive. 3. Optimisation des performances: optimiser les performances via React.Memo, UseCallback, UseMemo et d'autres méthodes pour trouver le point d'équilibre. 4. Organisation du code et modularité: organiser le code en fonction des modules fonctionnels pour améliorer la gestion et la maintenabilité. 5. Test et assurance qualité: test avec plaisante

Pour intégrer React dans HTML, suivez ces étapes: 1. Introduisez React et Reactdom dans les fichiers HTML. 2. Définissez un composant réact. 3. Rendez le composant en éléments HTML en utilisant Reactdom. Grâce à ces étapes, les pages HTML statiques peuvent être transformées en expériences interactives dynamiques.

La popularité de React comprend son optimisation des performances, sa réutilisation des composants et un écosystème riche. 1. L'optimisation des performances réalise des mises à jour efficaces via DOM virtuel et les mécanismes de diffusion. 2. La réutilisation des composants réduit le code en double par les composants réutilisables. 3. L'écosystème riche et le flux de données unidirectionnel améliorent l'expérience de développement.

React est l'outil de choix pour construire des interfaces utilisateur dynamiques et interactives. 1) La composante et JSX font la division et la réutilisation de l'interface utilisateur simple. 2) La gestion de l'État est implémentée via le crochet USESTATE pour déclencher des mises à jour de l'interface utilisateur. 3) Le mécanisme de traitement des événements répond à l'interaction des utilisateurs et améliore l'expérience utilisateur.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

Version Mac de WebStorm
Outils de développement JavaScript utiles

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

SublimeText3 version anglaise
Recommandé : version Win, prend en charge les invites de code !

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP