如何在node.js中从readfile缓冲区将ISO-8859-1转换为UTF-8

Fab*_*cci 2 utf-8 node.js

根据标题,我正在尝试解析以 ISO-8859-1 编码的 txt 以将数据放入数据库中。我确实需要先将这些数据转换为UTF-8。这是因为某些特殊字符,特别是大写重音字符,在数据库和前端中显示为问号。

我正在使用的代码是:

this.fs.readFile(fileName, null, function(err, buff){
                    if (err) {
                        self.openFiles();
                    } else {

                        var data = buff.toString('UTF-8');
                        self.parseNews(data, fileName);                             
                    }
                });
Run Code Online (Sandbox Code Playgroud)

我知道 SO 上也有类似的问题,但没有一个对我有帮助...你能以某种方式帮助我或找到解决方案吗?

谢谢!法比奥

rob*_*lep 5

您需要指定输入编码。假设与以下this.fs.readFile相同fs.readFile

this.fs.readFile(fileName, { encoding : 'latin1' }, function(err, buff) {
  ...
  var data = buff.toString(); // no need to specify encoding here
});
Run Code Online (Sandbox Code Playgroud)