gpt4 book ai didi

javascript - Node JS 不显示缓冲区中的 UTF-8 字符

转载 作者:太空宇宙 更新时间:2023-11-04 02:17:12 25 4
gpt4 key购买 nike

我正在进行一些网络爬行,并注意到我收到了一些奇怪的文档,其中包含诸如“�”之类的字符。

我访问了有问题的网站,但文档编码本身没有明显问题。

我取出了显示不正确的缓冲区并开始测试,问题似乎出在 Node js 中?

    var actual = new Buffer([0x50, 0x72, 0x65, 0xe7, 0x6f]) // this is the buffer I got
var correct = 'Preço' // This is what I expected to be displayed

console.log('Correct: ', correct)
console.log('Actual:', actual.toString('utf8'))

// Test code per code
console.log(correct.charCodeAt(0) + '=' + parseInt(actual[0]))
console.log(correct.charCodeAt(1) + '=' + parseInt(actual[1]))
console.log(correct.charCodeAt(2) + '=' + parseInt(actual[2]))
console.log(correct.charCodeAt(3) + '=' + parseInt(actual[3]))
console.log(correct.charCodeAt(4) + '=' + parseInt(actual[4]))

输出:

Correct:  Preço
Actual: Pre�o
80=80
114=114
101=101
231=231
111=111

如您所见,所有字节都对应相同的字符代码!他们怎么会产生不同的结果?

最佳答案

尝试iconv:

var actual = new Buffer([0x50, 0x72, 0x65, 0xe7, 0x6f]) // this is the buffer I got

var correct = 'Preço' // This is what I expected to be displayed

console.log('Correct: ', correct)
console.log('Actual:', actual.toString('utf8'))

var iconv = require('iconv');
var converter = new iconv.Iconv('windows-1250', 'utf8');
var data = converter.convert(actual).toString();
console.log('iconv: ',data);

关于javascript - Node JS 不显示缓冲区中的 UTF-8 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35185270/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com