28

我必须使用 nodejs 读取以 UTF-16 编码的文件(以块的形式,因为它非常大)。文件中的数据将进入 mongodb,因此我需要将其转换为 utf-8。从谷歌搜索来看,这似乎是 Node 不支持的,我将不得不自己从缓冲区转换原始数据。但我也认为应该有更好的方法,我只是没有找到它。有什么建议么?

谢谢。

4

2 回答 2

42

用or替换utf8读取文本文件时的正常值:utf16leucs2

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

或者:

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

此外,对于任何在互联网上搜索的人:任何人在解析的文件中出现额外的 �(问号)字符,这可能是您的问题的原因。以 UTF16/UCS2 格式读取文件,多余的字符将消失。

于 2014-10-31T14:15:07.513 回答
25

Node 支持 UCS-2,即 JavaScript 支持的 UTF-16 子集。尝试使用它。

请参阅此拉取请求

于 2012-06-07T23:41:16.573 回答