PHP8.1.21版本已发布
vue8.1.21版本已发布
jquery8.1.21版本已发布

nodejs中怎么将编码gbk转为utf8

青灯夜游
青灯夜游 原创
2021-09-16 12:19:29 5205浏览

转换方法: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 
// Object {data: [47, 63, 214, 208, 206, 196, 61, 56, 56], type: "Buffer"}
// utf8 str: "/?中文=88"

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

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。