2014-09-26 121 views
0

尝试使用jquery-csv库将CSV格式的数据读取到javascript中,但是在每行末尾的^M字符处出现CSVDataError: Illegal Data错误。从CSV文件中删除^ M

看来不管如何保存CSV,我都会得到这个^M。我只能看到^M,如果我打开vim中的CSV文件,即使在文本编辑器或我的IDE中,数据看起来也不错。在使用其他语言(如Python或R)时,我不会遇到此问题。

我正在使用Mac环境。

我该如何解决这个问题,并在将来避免这个问题?

回答

1
  1. 使用dos2unix进行转换。
  2. 这是错误的,“不管如何保存”CR(^ M是一个回车)被追加。例如,echo 'a,b,c' > letters.csv不会附加CR。检查你的文本编辑器设置。
0

看看jQuery-csv页面上的splitlines algorithm,它似乎提供了一个函数,可以为您清理这些有问题的回车。

+0

如何实现这个splitLines算法的作者? – brno792 2014-09-26 17:30:35

+0

该页面上已经提供了该实现。 – TML 2014-09-26 17:31:41

+0

所以在我将csv数据读入javascript后,我调用该函数,然后将结果传递到我的csv.toArrays()函数中? – brno792 2014-09-26 17:34:18

0

假设^M表示一个mac风格的回车,回车的支持包含在以前的版本中,所以你的代码应该可以工作。

来源:我jQuery的CSV