Maison >interface Web >Questions et réponses frontales >Comment convertir une chaîne au format UTF-8 en JavaScript
Dans le développement quotidien, nous avons souvent besoin de convertir des chaînes au format UTF-8, car UTF-8 est une méthode de codage de caractères universelle qui prend en charge les caractères multilingues, notamment le chinois, le japonais, le coréen, etc. JavaScript est un langage de script couramment utilisé qui peut nous aider à réaliser ce processus de conversion.
Cet article présentera comment convertir des chaînes au format UTF-8 en JavaScript sous les aspects suivants :
UTF-8 est un codage de caractères de longueur variable. Ses règles de codage sont les suivantes :
Par exemple, le code Unicode du caractère chinois « vous » est « U+4F60 ». Selon les règles ci-dessus, il devrait être « E4 BD A0 » après avoir été converti en encodage UTF-8.
En JavaScript, nous pouvons facilement convertir des chaînes au format UTF-8 grâce à des fonctions d'encodage et de décodage.
La première est la fonction d'encodage. Nous pouvons utiliser la fonction encodeURIComponent() pour convertir la chaîne au format d'encodage URI, puis fusionner l'encodage URI de chaque caractère dans la chaîne finale au format UTF-8. suit :
function utf8Encode(str) { let encodedStr = encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (match, p1) => { return String.fromCharCode(parseInt(p1, 16)); }); let utf8Str = ""; for (let i = 0; i < encodedStr.length; i++) { let charCode = encodedStr.charCodeAt(i); if (charCode < 128) { utf8Str += String.fromCharCode(charCode); } else if (charCode < 2048) { utf8Str += String.fromCharCode((charCode >> 6) | 192); utf8Str += String.fromCharCode((charCode & 63) | 128); } else { utf8Str += String.fromCharCode((charCode >> 12) | 224); utf8Str += String.fromCharCode(((charCode >> 6) & 63) | 128); utf8Str += String.fromCharCode((charCode & 63) | 128); } } return utf8Str; }
Parmi elles, la fonction encodeURIComponent() est utilisée pour convertir la chaîne en codage URI, et la fonction replace() est utilisée pour fusionner l'encodage URI de chaque caractère dans la chaîne finale au format UTF-8.
La fonction de décodage utilise la fonction decodeURIComponent() pour décoder la chaîne codée. L'exemple de code est le suivant :
function utf8Decode(utf8Str) { let decodedStr = ""; let i = 0; while (i < utf8Str.length) { let charCode = utf8Str.charCodeAt(i); if (charCode < 128) { decodedStr += String.fromCharCode(charCode); i++; } else if (charCode >= 192 && charCode < 224) { decodedStr += String.fromCharCode(((charCode & 31) << 6) | (utf8Str.charCodeAt(i + 1) & 63)); i += 2; } else { decodedStr += String.fromCharCode(((charCode & 15) << 12) | ((utf8Str.charCodeAt(i + 1) & 63) << 6) | (utf8Str.charCodeAt(i + 2) & 63)); i += 3; } } return decodeURIComponent(decodedStr); }
Bien que la fonction ci-dessus puisse convertir les chaînes au format UTF-8, mais cette méthode n'est pas très pratique si l'on a besoin de transcoder des chaînes dans l'ensemble de l'application web. À l'heure actuelle, nous pouvons utiliser des bibliothèques tierces, telles que iconv-lite, pour effectuer la tâche de transcodage de l'ensemble de l'application. L'exemple de code est le suivant :
const iconv = require("iconv-lite"); let utf8Str = "欢迎使用 iconv-lite 库"; let buf = iconv.encode(utf8Str, "utf8"); // 转成 UTF-8 Buffer let gbkStr = iconv.decode(buf, "gbk"); // 转成 GBK 编码字符串
Dans le code ci-dessus, nous utilisons iconv.encode(. ) pour convertir la chaîne en tampon codé UTF-8, puis utilisez la fonction iconv.decode() pour convertir le tampon en chaîne codée correspondante. Il convient de noter que pour utiliser la bibliothèque iconv-lite, vous devez d'abord l'installer via npm. La méthode d'installation est la suivante :
npm install iconv-lite
Résumé
Cet article présente comment convertir des chaînes au format UTF-8 en JavaScript. Nous avons découvert la méthode de codage UTF-8, réalisé une méthode simple de conversion de chaînes en UTF-8 grâce à des fonctions de codage et de décodage, et introduit l'utilisation de la bibliothèque iconv-lite pour terminer la tâche de transcodage de l'ensemble de l'application. Dans le développement réel, choisir une méthode appropriée en fonction des besoins réels peut réduire les coûts de développement et améliorer l'efficacité du travail.
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!