【发布时间】:2017-10-06 22:03:45
【问题描述】:
背景
已有一个带有 postgres db 的 Django 应用程序。无法更改(出于某种原因),用户希望自动将报告上传到它,而不是他们必须单击以上传单个报告的按钮(可以理解)
我只是在编写一个小 Node.js 脚本(它将附加到另一个节点应用程序)来读取 .csv 文件到 json string 并通过邮寄将其发送到数据库。只是为了在我进行自动化之前测试它发送。
问题
问题是当我发送数据时,数据开头似乎隐藏了?
?Number,Name,Date,Foo,Bar
这会导致读取它的表出现问题。
我正在使用的代码
const request = require('request')
const fs = require('fs')
fs.readFile('users.csv', utf8, function(err, data) {
var sentData = JSON.stringify(data)
request.post('/api/user/set_data').form(sentData)
})
我猜它与" 有关,因为稍后在数据中它也转换( ) tp %28 和%29 但在\r\n" 之后的末尾没有隐藏字符
更新
所以如果我有一点 Fiddle fs.readFile('users.csv', (err, data) => console.log(err, String(data)))
我可以看到null 'Number,Name,Date,Foo,Bar CSV 中没有空值或空值
【问题讨论】:
-
我不认为这是一个问号,而是一个byte order mark。您确定文件是 UTF-8 编码的吗?
-
好吧...我假设是这样。如果我输入除 'utf8' 以外的任何内容,我将得不到任何可用的数据
-
您是否尝试使用编辑器打开 CSV 文件,让您可以查看所有字符,例如 Notepad++ 或其他?
-
是的,在 Visual Studio 代码中打开它,看起来就像一个完全正常的 csv 文件