Как я могу прочитать файл, закодированный в utf-16 в nodejs?

Мне нужно прочитать файл, закодированный в UTF-16, с помощью nodejs (в кусках, потому что он очень большой). Данные из файла войдут в mongodb, поэтому мне нужно будет преобразовать его в utf-8. От googling кажется, что это просто не поддерживается Node, и мне придется прибегнуть к преобразованию необработанных данных из буфера. Но я также думаю, что должен быть лучший способ, и я просто не нахожу его. Любые предложения?

Спасибо.

Ответы

Ответ 1

Node поддерживает UCS-2, подмножество UTF-16, поддерживаемое JavaScript. Попробуйте использовать это.

Смотрите запрос на перенос.

Ответ 2

Замените обычный utf8, который вы получили при чтении текстового файла с помощью ucs2:

var fileContents = fs.readFileSync('import.csv','ucs2')

Кроме того, для Google: любой, кто получает дополнительные символы (вопросительный знак), появляющиеся в анализируемом файле, вероятно, является причиной вашей проблемы. Прочитайте файл как UTF16/UCS2, и дополнительные символы исчезнут.