transcodage Unicode nodejs

王林
王林original
2023-05-08 19:21:091255parcourir

Node.js Unicode Transcoding

L'encodage et le décodage Unicode dans Node.js deviennent de plus en plus courants. Sa méthode de recherche de séquences Unicode est simple par rapport à de nombreux langages de programmation courants. JavaScript prend naturellement en charge les chaînes Unicode grâce à son mécanisme d'encodage UTF-16 intégré. Dans cet article, nous expliquerons comment utiliser l'encodage et le décodage Unicode dans Node.js.

Introduction à Unicode

Unicode est un codage de caractères conçu pour couvrir tous les jeux de caractères et leur attribuer des points de code numériques uniques. Cela signifie qu'Unicode peut être utilisé pour représenter presque tous les caractères dans n'importe quelle langue, qu'il s'agisse de caractères communs ou rares. Il prend également en charge Emoji et divers symboles. Unicode utilise des unités de code de 16 ou 32 bits pour représenter tous les caractères sous forme de nombres, appelés points de code.

Utilisation d'Unicode dans JavaScript

JavaScript prend en charge Unicode. En JavaScript, le mécanisme de codage UTF-16 est utilisé pour stocker des chaînes, et les syntaxes u xxxx et u{xxxxx} sont autorisées à représenter des points de code Unicode (où x est un nombre hexadécimal). Par exemple, voici des exemples de points de code Unicode représentant le caractère chinois « 中 » : u4e2d et u{4e2d}.

const str1 = "u4e2d";
const str2 = "u{4e2d}";

console.log(str1); // dans
console.log(str2); // dans

dans Node.js en cours de fonctionnement avec Unicode

Dans Node.js, vous pouvez également utiliser des objets Buffer pour gérer l'encodage et le décodage Unicode. Buffer peut être considéré comme un tableau d'entiers non signés, chaque élément ayant une valeur comprise entre 0 et 255, mais la méthode toString peut être utilisée pour interpréter le contenu de manière à décoder la chaîne au format Unicode.

Une exigence courante est de convertir la chaîne Unicode en tableau d'octets en codage UTF-8. Cela peut être fait en passant une chaîne à la méthode Buffer :

const str = "Node.js is cool"
const buff = Buffer.from(str, "utf-8"); ); //

De même, un objet Buffer peut être utilisé pour convertir un tableau d'octets codé UTF-8 en chaîne Unicode correspondante. Cela peut être fait en utilisant la méthode toString et en passant l'encodage comme "utf-8":

const buff = Buffer.from([0x4e, 0x6f, 0x64, 0x65, 0x2e, 0x6a, 0x73, 0x20, 0x69, 0x73, 0x20, 0x63, 0x6f, 0x6f, 0x6c]);

const str = buff.toString("utf-8");


console.log(str); // Node.js est cool

dans Node.js C'est également facile à utiliser l’encodage UTF-16. Vous pouvez utiliser la méthode buffer directement sur la chaîne et spécifier le type d'encodage comme "utf-16le" ou "ucs2" :

const str = "Chinese";

const buff = Buffer.from(str, "ucs2");


console.log(buff); //

Convertir un tableau d'octets codé UTF-16 en chaîne Unicode :

const buff = Buffer.from([0xe4, 0xb8, 0xad, 0xe6, 0x96, 0x87]);

const str = buff.toString("ucs2");


console.log(str); // Chinese

Notez que lors de l'utilisation de l'encodage "ucs2", tous les points de code Unicode sont représentés en utilisant des unités de code de 16 bits. Si le point de code Unicode est supérieur à 0xFFFF, un autre codage doit être utilisé, tel que UTF-16BE ou UTF-16LE.

Conclusion

Node.js prend en charge Unicode, ce qui rend la gestion de l'encodage et du décodage Unicode simple et directe. Vous pouvez utiliser la prise en charge Unicode intégrée dans JavaScript ou utiliser l'objet Buffer dans Node.js pour la conversion. Quelle que soit la méthode que vous utilisez, travailler avec des séquences Unicode est simple et rapide.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:installation de nodejs8.4Article suivant:installation de nodejs8.4