node.jsで文字コードの不明なファイルを読み込む

文字コードの不明なファイルから文字コードを検出して、文字列を読み込む方法です。

encoding-japaneseをインストールします。

npm install encoding-japanese --save

encoding-japaneseを読み込みます。

const Encoding = require('encoding-japanese');

ファイルを読み込みます。
このとき、文字コードを指定せず、Bufferを受け取ります。

const fs = require('fs');

// バイナリファイルを読み込む
const buffer = fs.readFileSync('euc.txt');

文字コードを検出します。

// 文字コードの検出
const detected = Encoding.detect(buffer);
console.log(`文字コードは「${detected}」です`);

文字列に変換します。

// 文字列に変換する
const text = Encoding.convert(buffer, {
  from: detected,
  to: 'UNICODE',
  type: 'string',
});
console.log(`文字列は「${text}」です`);

全体のコードは次のようになります。

const fs = require('fs');
const Encoding = require('encoding-japanese');

// バイナリファイルを読み込む
const buffer = fs.readFileSync('euc.txt');

// 文字コードの検出
const detected = Encoding.detect(buffer);
console.log(`文字コードは「${detected}」です`);

// 文字列に変換する
const text = Encoding.convert(buffer, {
  from: detected,
  to: 'UNICODE',
  type: 'string',
});
console.log(`文字列は「${text}」です`);

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください