Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用NodeJS解析CSV时出现奇怪的编码问题_Javascript_Node.js_Csv_Encoding_Papaparse - Fatal编程技术网

Javascript 使用NodeJS解析CSV时出现奇怪的编码问题

Javascript 使用NodeJS解析CSV时出现奇怪的编码问题,javascript,node.js,csv,encoding,papaparse,Javascript,Node.js,Csv,Encoding,Papaparse,我遇到了一个奇怪的问题,导致我的终端编码发疯,每次都需要重新启动IDE(我在Mac OS X 10.12.4上使用PhpStorm 2017.1.2)。 这个项目很大程度上依赖于我的这个小解析功能,到目前为止,它工作起来很有魅力,但是当我试图解析一个大的csv文件(大约150k条记录)并尝试console.log每一行时,它开始出现“小故障”,使我的整个终端(在ide中)完全无法读取 CSV文件的格式如下- 代币,广告组 N000000000089076,BCZ我的-关键字1 N00000000

我遇到了一个奇怪的问题,导致我的终端编码发疯,每次都需要重新启动IDE(我在Mac OS X 10.12.4上使用PhpStorm 2017.1.2)。 这个项目很大程度上依赖于我的这个小解析功能,到目前为止,它工作起来很有魅力,但是当我试图解析一个大的csv文件(大约150k条记录)并尝试console.log每一行时,它开始出现“小故障”,使我的整个终端(在ide中)完全无法读取

CSV文件的格式如下-

代币,广告组
N000000000089076,BCZ我的-关键字1
N000000000090445,BCZ SG-关键字3
N000000000089102,BCZ我的-关键字47
N000000000090115,BCZ SG-关键字33[精确]
N000000000087801,BCZ AU-关键字12-[精确]
N000000000088111,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的控制台后,我可以看到它正确地打印出了前几千行,但随后发生了一些奇怪的事情,它将其“打印编码”更改为一些奇怪的东西,并将我的整个shell更改为它(为了更好地说明,附上了一个屏幕截图)


屏幕截图是在我按ctrl+c停止console.log循环并返回终端后显示的。。但是我的输入编码也发生了变化,您可以看到我试图在其中输入一个简单的“ls”。

也许我不太理解您的问题,但可能您的问题来自于编码:

parse(fs.readFileSync(
。/dashboard/reports/${file_name}
,{encoding:'utf8'})


如果这个答案不起作用,你能提供更多关于文件内容的信息吗?

也许我不太理解你的问题,但也许你的问题来自编码:

parse(fs.readFileSync(
。/dashboard/reports/${file_name}
,{encoding:'utf8'})


如果这个答案不起作用,你能提供更多关于文件内容的信息吗?

我也尝试切换到utf8,但不幸的是没有帮助。关于内容的信息没有比我在这里发布的更多。所有行看起来与上面相同,格式分为两列,第一列和第二列上都有标记第二个广告组的名称-可能有一些广告组的名称包含特殊字符,如西班牙语字母,但它对我以前的部分没有任何影响,内容相同。你能在事情开始变得疯狂的地方添加一行吗?这就是问题所在。我真的无法找到它,因为它正在更改已经存在的日志d文本也是乱七八糟的。有没有一个选项可以使用nodemon将它全部记录到一个文本文件中?你能尝试在一个简单的文件上再次出现错误吗?(你必须注册你试图在一个文件上解析的任何数据)嗯,问题是一段泰语文本(ปิดบัญชี). 我仍然不知道如何使用PapaParse处理这些问题。我也尝试过切换到utf8,但不幸的是没有帮助。除了我在这里发布的内容外,没有更多关于内容的信息。所有的行看起来与上面一样,格式分为两列,第一列上有一个标记,第二列上有广告组的名称一-可能有些广告组名称包含特殊字符,如西班牙语字母,但它对我以前的部分内容没有任何影响。你能在事情开始变得疯狂的地方添加一行吗?这就是问题所在。我真的找不到它,因为它正在将已记录的文本也更改为胡言乱语。是吗有没有一个选项可以使用nodemon将其全部记录到文本文件中?您是否可以尝试在一个简单的文件上再次出现此错误?(您必须在文件上注册您试图解析的任何数据)嗯,问题是一段泰语文本(ปิดบัญชี). 仍然不知道如何用PapaParse处理这些问题。