nodejs中怎么将编码gbk转为utf8

转换方法:1、用“new TextDecoder(‘gbk’).decode(new Uint8Array([…]).buffer)”语句;2、利用“iconv.decode(Buffer.from([…]), ‘gbk’)”语句。

本教程操作环境:windows7系统、nodejs 14.15.4版,DELL G3电脑。

js 与 nodejs 都有 TextEncoder TextDecoder ,可以进行编码之间的转换

nodejs 版本需要 >=8.3.0 才支持 util.TextEncoder,util.TextDecoder

gbk 转 utf8

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

nodejs 建议通过 iconv or iconv-lite第三方库进行编码之间的转换。因为使用原生 TextEncoder需要完整的 ICU Data 具体看这里 util_class_util_textdecoder

utf8 gbk 互转

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"

【推荐学习:《nodejs 教程》】

以上就是nodejs中怎么将编码gbk转为utf8的详细内容,更多请关注美工之家9502669.com其它相关文章!