文字コードの不明なファイルから文字コードを検出して、文字列を読み込む方法です。
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}」です`);