Maison >interface Web >Questions et réponses frontales >transcodage Unicode nodejs
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!