如何在nodejs中读取以utf-16编码的文件?

时间:2012-06-07 21:39:38

标签: node.js utf-16

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

感谢。

2 个答案:

答案 0 :(得分:22)

替换使用utf8utf16le阅读文本文件时的正常ucs2

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

或:

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

另外,对于谷歌:任何人都会在解析文件中出现额外的�(问号)字符,这可能是导致问题的原因。将文件读为UTF16 / UCS2,额外的字符将消失。

答案 1 :(得分:21)

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

请参阅此pull request