2017-04-24 6 views
0

私の端末のエンコーディングが不安定になるという奇妙な問題が起きていますが、毎回IDEを再起動する必要があります(MacOSではPhpStorm 2017.1.2を使用しています) X 10.12.4)。 このプロジェクトは私のこの小さな構文解析機能に多く依存していますが、これまでは魅力的でしたが、大きなcsvファイル(約150kレコード)を解析しようとすると、すべての行をconsole.logにしようとしましたが、それは「不具合」を起こし、私の全端末を(ide内で)完全に読めないようにします。NodeJSでCSVを解析する際に奇妙なエンコーディングの問題

CSVファイルは次のようにフォーマットされた -

トークン、広告グループ
N000000000089076、BCZ MY - キーワード1
N000000000090445、BCZ SG - キーワード3
N000000000089102、BCZ MY - キーワード47
N000000000090115、BCZ SG - キーワード33 [実寸]
N000000000087801、BCZ AU - キーワード12 - [実寸]
N0000 00000088111、BCZ CA - キーワード1 - フレーズ
N000000000090795は、BCZ英国 - Kyeword 89 - それを実行して行く後

exports.csv_tokens_parse = function(file_name) { 
console.log('starting to parse '+file_name+'...'); 

Papa.parse(fs.readFileSync(`../dashboard/reports/${file_name}`, {encoding: 'binary'}), 
{ 
    step: function (row) { 
     console.log(row.data[0][1]); //displaying the ad_groups column 
    } 
}); 
return file_arr; 
}; 

-

マイ解析関数のフレーズ
..andので、このようになりますphpstormのコンソールに戻って、私はそれが最初の数千の行を適切にプリントアウトするのを見ることができますが、変わったことが起こり、それが奇妙なものに印刷エンコーディングを変え、シェル全体を変更します。より明確に)

私はにconsole.logループを停止し、戻って端末に取得するには、Ctrl + Cを押した後、10

messed up encoding in terminal

スクリーンショットです..しかし、私のタイピングエンコーディングは、同様に変更されている、とあなたは私が単純な入力しようとして見ることができますその中に 'ls'があります。

答えて

0

たぶん私は非常によくあなたの問題を理解しませんでしたが、多分あなたの問題は、エンコーディングから来ている:

Papa.parse(fs.readFileSync(../dashboard/reports/${file_name}、{エンコーディング 'UTF8'})、

この回答がうまくいかない場合は、ファイルの内容に関する詳細情報を入力できますか?

+0

私はutf8にも切り替えようとしましたが、残念ながらそれは役に立ちませんでした。私はすでにここに投稿しています。すべての行は上記と同じように見え、最初の行にトークンを付けて2列にフォーマットし、広告groの名前 - スペイン語のような特殊文字を含む広告グループ名があるかもしれませんが、同じ内容の前回の解析には何の影響もありませんでした。 –

+0

物事が狂ってしまう行を追加できますか? – Amine

+0

それは問題です。私はそれを追跡することはできません。すでにログに記録されているテキストも変わります.Nodemonを使ってテキストファイルにすべてログするオプションはありますか? –