我正在尝试编写一个节点应用程序,它读取一组文件,将它们分成几行,然后将这些行放入一个数组中。很简单。它适用于很多文件,除了我正在使用的一些 SQL 文件。出于某种原因,当我拆分线路时,我似乎得到了某种 unicode 输出。该应用程序看起来像这样:
fs = require("fs");
var data = fs.readFileSync("test.sql", "utf8");
console.log(data);
lines = data.split("\n");
console.log(lines);
输入文件如下所示:
use whatever
go
输出如下所示:
��use whatever
go
[ '��u\u0000s\u0000e\u0000 \u0000w\u0000h\u0000a\u0000t\u0000e\u0000v\u0000e\u0000r\u0000',
'\u0000g\u0000o\u0000',
'\u0000' ]
如您所见,文件开头有某种无法识别的字符。把数据读进去直接输出后,除了这个字符外,看起来还可以。但是,如果我随后尝试将其分成几行,我会得到所有这些类似 unicode 的字符。基本上它是所有以“\u0000”开头的实际字符。
我不知道这里发生了什么,但它似乎与文件本身中的字符有关。如果我将文件的文本复制并粘贴到另一个新文件中并在新文件上运行应用程序,它工作正常。我假设在复制和粘贴过程中会删除导致此问题的任何原因。