Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 从文件读取时,重音字符会中断_Node.js_File_Encoding_Fs_Readline - Fatal编程技术网

Node.js 从文件读取时,重音字符会中断

Node.js 从文件读取时,重音字符会中断,node.js,file,encoding,fs,readline,Node.js,File,Encoding,Fs,Readline,我正在尝试console.log文件中的所有行,这些行与以下文字的行数相同: Mansões Maracanã Filadélfia Califórnia 为此,我将readline与fs一起使用: const rl = readline.createInterface({ input: fs.createReadStream(BASE_PATH + 'word.TXT', { encoding: 'utf8'}) }); rl.on('line', func

我正在尝试console.log文件中的所有行,这些行与以下文字的行数相同:

Mansões
Maracanã
Filadélfia
Califórnia
为此,我将readline与fs一起使用:

const rl = readline.createInterface({
        input: fs.createReadStream(BASE_PATH + 'word.TXT', { encoding: 'utf8'})
    });

    rl.on('line', function (line) {
        console.log(line);
    });
但是was正在终端上登录的是:

Mans�es
Maracan�
Filad�lfia
Calif�rnia

目前正在使用:Nest.js+readline+fs。

正如上面的评论所说,有两种类型的解决方案。 第一个:

  • 创建新文件并将原始文件中的内容粘贴到文本编辑器中
  • 将内容从文本编辑器复制到此新文件中
第二个:

  • 使用拉丁1编码
    输入:fs.createReadStream(BASE_PATH+'word.TXT',{encoding:'latin1'})

您可能需要从外部站点复制粘贴文件内容。我建议请重写文本,这不会发生。我已经确认你的代码和文本文件在我的本地机器上,它工作良好,可能是你直接从网站复制粘贴,这是它可能无法工作的原因。复制文本后,请粘贴到任何文本编辑器中,然后将其放入文件中。这是不会发生的。这是有效的,但是没有任何方法可以通过代码来解决这个问题吗?可能这是语言中的一些特殊字符。用于打印此字符的各种类型的Utf编码。通常,Utf-8处理此字符。我不知道实际的原因,但是的,我相信,由于复制pase从外部网站它可能会发生。我可能会读到并知道你的原因