[node.js] CP932のテキストを読み込む
Windowsで作成したテキストファイル (文字コードが CP932) をNode.jsで読み込むときに、どのモジュールを使うか毎回検索するのでメモ。 node-iconv より iconv-lite の方が早いらしい。 ついでに promisify と async / await のサンプルとしてテストコードを作成してみた。 const fs = require ( "fs" ); const util = require ( "util" ); const iconv = require ( "iconv-lite" ); // 対象ファイル const filePath = `./test.txt`; // readFileをpromiseを返すように変換 const readFileAsync = util.promisify(fs.readFile); async function main () { try { // テキストファイルを読み込む const buf = await readFileAsync(filePath); // CP932->UTF8に変換 const text = iconv.decode(buf, "CP932" ); console.log(text); } catch (err) { console.log( "ERROR:" , err); } } main(); 参考 iconv-lite node.jsのfsでShift-jisのテキストを文字化けせず読み込む(iconv-lite) | TPB util.promisify()でcallbackスタイルの関数をpromise化 - Qiita Node.js 8: util.promisify()