Node.js 越南语爬网字符不';不要像他们在网上那样出现

Node.js 越南语爬网字符不';不要像他们在网上那样出现,node.js,utf-8,web-crawler,text-processing,Node.js,Utf 8,Web Crawler,Text Processing,我正在从web上抓取一些读数,并将它们保存为utf8 txt: const result=wait page.evaluate(()=>{ const title=document.querySelector(“#章节标题”).innerText; const content=document.querySelector(“#章节内容”).innerText; 返回标题+“\n\n”+内容 }) writeFileSync(`./results/chapter${chapter}.txt`、`

我正在从web上抓取一些读数,并将它们保存为utf8 txt:

const result=wait page.evaluate(()=>{
const title=document.querySelector(“#章节标题”).innerText;
const content=document.querySelector(“#章节内容”).innerText;
返回标题+“\n\n”+内容
})

writeFileSync(`./results/chapter${chapter}.txt`、`${result}`、'utf8')我已使用解决了此问题

源HTML中的字符是NFC和NFD形式的混合体。我的文本编辑器似乎未能将带有2个或更多重音的字符组合在一起,从而导致了单独的重音/方块。使用normalize(),将它们全部规范化为NFC,解决了这个问题


(2天内无法接受自答问题,请在您认为合适的情况下详细说明或添加参考/评论)

第一种情况下,您可能只是以错误的方式查看结果。没有一个合适的样本,真的不可能说出这里到底发生了什么。如果您可以显示一些字节的错误和正确的UTF-8,我们可以尝试找出它是如何被修改的。六个字符的十六进制转储应该足够了。我会检查终端设置。似乎第一个会在每个unicode码点上打印一个“字符”,第二个会正确地组合码点(使用良好的字体)。