【问题标题】:Getting black diamond question mark while reading csv file in node js在节点 js 中读取 csv 文件时出现黑色菱形问号
【发布时间】:2020-02-17 20:52:37
【问题描述】:

我有一个 csv 文件,其文本为:右大括号单引号是 ' 右大括号双引号是 ”。

我得到的文字是:右弯单引号是�,右弯双引号是�。

我使用 node fs 模块读取 utf8 编码的文件,如下所述:

var express = require('express');
var app = express();
var fs = require("fs");

app.get('/', function (req, res) {
  var data = fs.readFileSync('abc.csv',{encoding: 'utf8'});
  res.send(data);
})

var server = app.listen(8080, function () {});

谁能帮我获取正确的单引号和双引号数据?

【问题讨论】:

  • 尝试使用 csv-parser => npmjs.com/package/csv-parser
  • 您确定 CSV 是 utf8 格式吗?,. CSV 是一个旧标准,很可能它正在使用代码页..

标签: javascript node.js


【解决方案1】:

首先,utf8 实际上是默认值,因此您甚至不需要将其作为选项传递

请确保将 CSV 文件保存为 CSV utf-8。这将帮助您解决问题。

fs.appendFile('log.csv', '\ufeffThis is an example with accents : é � è à ', 'utf8', function(err) {
    if (err) throw err;
});

现在如果你看到

$ file -I log.csv
$ log.csv: text/plain; charset=utf-8

另一种方式, 您可以手动使用 npm 中的utf8 module 对字符串进行编码/解码。

【讨论】:

    猜你喜欢
    • 2014-08-27
    • 1970-01-01
    • 1970-01-01
    • 2013-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-21
    • 1970-01-01
    相关资源
    最近更新 更多