Я пытаюсь написать приложение node, которое считывает набор файлов, разбивает их на строки и помещает строки в массив. Довольно просто. Он работает с несколькими файлами, за исключением некоторых файлов 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' ]
Как видите, в начале файла есть какой-то нераспознанный символ. После чтения данных и их прямого вывода все выглядит нормально, за исключением этого символа. Однако, если я затем попытаюсь разбить его на строки, я получу все эти юникод-подобные символы. В основном это все настоящие символы с «\ u0000» в начале каждого из них.
Я понятия не имею, что здесь происходит, но, похоже, это как-то связано с символами в самом файле. Если я скопирую и вставлю текст файла в другой новый файл и запущу приложение в новом файле, он будет работать нормально. Я предполагаю, что все, что вызывает эту проблему, удаляется в процессе копирования и вставки.