2017-01-25 7 views
-1

nodejsと「L」の文字をファイルに書き込め)。をファイルから読み込み、私はこの文字を読み、「L」の文字を取得するために(同じエンコーディングで別のファイルに保存したいと思い、私は「L」の文字とANSIファイルを持っている

const fs = require('fs'); 
var content = fs.readFileSync('input.txt',null); //Ł 
fs.writeFileSync('output.txt',content,null); //Ł how to get this? 

nodejsでこれを行う方法は?

更新:

非-r

ファイル-i

text/plainでのcharset =にUnknown-8ビット

ファイル:私は、入力ファイルをチェックしますISO拡張ASCII、非常に長い行のテキスト、CRLF行ターミネータ付き

は、私がこのような詳細でファイルを保存することはできますか?

+1

は「ANSIファイル」の定義 - 何**特定の**エンコーディングが使用してファイルのですか?ドロップダウンボックス(Windows-1252を使用していると思う)の「ANSI」オプションを使用してメモ帳からファイルを保存しようとすると、正しく保存されず、そのエンコーディングにマッピングがあるかどうかわかりません。 .. –

+0

私はメモ帳++でファイルを開きます、それはANSIと言います。 – johnerfx

+1

そのコードは(エンコードに関係なく)機能するはずです。 'readFile' /' readFileSync'にエンコーディングを与えていないときは、生のバッファを読み込みます(データの変換はありません)。 'writeFile' /' writeFileSync'にバッファを与えると、エンコーディングは使用されません。データを書き込むだけです。 –

答えて

0

私は問題の文字をバッファのうちバイナリ文字列を作成することによって、何を望むか達成:

const fs = require('fs'); 
function getChar(charId) { 
    let characters = { AA:165, //Ą 
     EE:202, //Ę 
     CC:198, //Ć 
     LL:163, //Ł 
     SS:140, //Ś 
     OO:211, //Ó 
     ZZ:175, //Ż 
     ZZZ:143, //Ź 
     aa:185, //ą 
     ee:234, //ę 
     cc:230, //ć 
     ll:179, //ł 
     ss:156, //ś 
     oo:243, //ó 
     zz:191, //ź 
     zzz:159 //ź 
    }; 
    let buf = new Buffer({ 
     type:'Buffer', 
     data:[ characters[charId] ], 
     encoding:'ISO-8859-2' 
    }); 
    return buf.toString('binary') 
} 
fs.writeFileSync('output.txt',getChar('LL')+" test",'ascii'); //'Ł test' 
-1

それは最も可能性が高い、これはむしろ「ANSI」のものよりも、UTF-8でエンコードされたファイルであるのです。その '£'文字はansiエンコーディングでは表現できません。どのような種類のエンコーディングが存在しているのかをunix-esのfileコマンドで確認し、そこから進んでください。

+0

これは、*答*(有用なもの)であり、答えではありません。 –

+0

@ T.J.Crowderは真ですが、質問にはそれほど多くはありません。彼らは質問を更新して答えを広げることができると願っています。 –

+0

'file'コマンドでファイルをチェックした後、質問を更新しました。 – johnerfx

関連する問題