web-dev-qa-db-ja.com

nodejsでutf-16でエンコードされたファイルを読み取るにはどうすればよいですか?

Nodejsを使用してUTF-16でエンコードされたファイルを読み取る必要があります(非常に大きいため、チャンクで)。ファイルのデータはmongodbに送られるので、utf-8に変換する必要があります。グーグルからすると、これはNodeでサポートされていないのは明白であるように思われるので、自分でバッファーから生データを変換する必要があります。しかし、私はまた、より良い方法があるべきだと思います、そして私はそれを見つけていません。助言がありますか?

ありがとう。

21
Ryan Ballantyne

Nodeは、JavaScriptでサポートされているUTF-16サブセットであるUCS-2をサポートしています。それを使ってみてください。

これを参照してください プルリクエスト

23

テキストファイルを読み取るときに使用する通常のutf8utf16leまたはucs2に置き換えます。

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

または:

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

また、Googleの場合:解析されたファイルに追加の�(疑問符)文字が表示される場合は、これが問題の原因である可能性があります。ファイルをUTF16/UCS2として読み取ると、余分な文字が消えます。

30
mikemaccana