[node.js] CP932のテキストを読み込む

Windowsで作成したテキストファイル (文字コードが CP932) をNode.jsで読み込むときに、どのモジュールを使うか毎回検索するのでメモ。

node-iconv より iconv-lite の方が早いらしい。

ついでに promisifyasync / 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();

参考

コメント

このブログの人気の投稿

Classpath entry org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER is marked for publish/export but is not exported on the project classpath

蛍光灯フリッカー現象 (ちらつき) の対策