我遇到了一個奇怪的問題,導致我的終端的編碼變得瘋狂了,有時需要我每次重啓我的IDE時(我在Mac OS上使用PhpStorm 2017.1.2 X 10.12.4)。 這個項目有很多依賴於我的這個小解析函數,直到現在它像一個魅力,但當我試圖解析一個大的csv文件(大約150k記錄),並試圖console.log每一行,它開始「毛刺」,並使我的整個終端(在IDE內)完全無法讀取。使用NodeJS解析CSV時奇怪的編碼問題
CSV文件被格式化這樣的 -
令牌,AD_GROUP
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;
};
運行它,並打算之後回到phpstorm的控制檯,我可以看到它正確地打印了前幾千行,但之後發生了一些奇怪的事情,它將它的打印編碼更改爲奇怪的東西,並將我的整個外殼更改爲它(附帶一個截圖更好的說明)
該屏幕截圖是在我點擊ctrl + c停止console.log循環並返回到終端..但是我的打字編碼也發生了變化,並且您可以看到我嘗試鍵入簡單'ls'在裏面。
我試着切換到utf8,但不幸的是它沒有幫助..沒有關於內容的更多信息我已經在這裏發佈了,所有行看起來都與上面相同,格式化爲兩列,第一個標記爲令牌,ad gro的名稱第二個 - 也許有一些廣告組名稱包含西班牙字母等特殊字符,但它對我以前的分析沒有任何影響,但內容相同。 –
你可以添加一些事情開始瘋狂的行嗎? – Amine
這就是問題所在。我無法真正追蹤它,因爲它將已經記錄的文本更改爲亂碼。是否有使用nodemon將它們全部記錄到文本文件中的選項? –