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