Maison >interface Web >Questions et réponses frontales >Comment convertir l'encodage gbk en utf8 dans nodejs

Comment convertir l'encodage gbk en utf8 dans nodejs

青灯夜游
青灯夜游original
2021-09-16 12:19:295472parcourir

Méthode de conversion : 1. Utilisez l'instruction "new TextDecoder('gbk').decode(new Uint8Array([...]).buffer)" ; 2. Utilisez "iconv.decode(Buffer.from([.. .] ]), 'gbk')".

Comment convertir l'encodage gbk en utf8 dans nodejs

L'environnement d'exploitation de ce tutoriel : système windows7, nodejs version 14.15.4, ordinateur DELL G3.

js et nodejs ont tous deux TextEncoder TextDecoder et peuvent convertir entre les encodages

La version de Nodejs nécessite >=8.3.0 pour prendre en charge util.TextEncoder, util.TextDecoder

gbk en utf8

new TextDecoder('gbk').decode(new Uint8Array([ 47, 63, 214, 208, 206, 196, 61, 56, 56 ]).buffer)
// out:  "/?中文=88"

nodejs recommande en utilisant des bibliothèques tierces iconv ou iconv-lite pour convertir entre les encodages. Étant donné que l'utilisation de TextEncoder natif nécessite des données ICU complètes, veuillez consulter ici pour plus de détails util_class_util_textdecoder

utf8 gBK conversion mutuelle

let iconv = require('iconv-lite');
// 这里是utf8
let str = '/?中文=88';
// utf8转换成gbk
let encoded = iconv.encode(str, 'gbk');
console.log(encoded,encoded.toJSON())

// gbk转换成utf8
str = iconv.decode(Buffer.from([ 47, 63, 214, 208, 206, 196, 61, 56, 56 ]), 'gbk');
console.log('utf8 str:',str)

// out: Buffer <2F, 3F, D6, D0, CE, C4, 3D, 38, 38>
// Object {data: [47, 63, 214, 208, 206, 196, 61, 56, 56], type: "Buffer"}
// utf8 str: "/?中文=88"

【Apprentissage recommandé : "tutoriel Nodejs"】

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