首页 > 解决方案 > 如何处理 csv 文件中除 utf-8 以外的编码的特殊字符

问题描述

我正在尝试使用 createReadStream 在 nodejs 中读取 csv 文件,但遇到特殊字符时遇到问题。当 csv 文件字符集是 UTF-8 时,它会完整地返回特殊字符,但如果字符集不是 UTF-8,那么特殊字符将被转换为 ? 这是我尝试过的:

let parseOptions = {
        headers: false,
        ignoreEmpty: false,
        trim: true,
        discardUnmappedColumns: false,
        quoteHeaders: true
    };
let stream = fs.createReadStream(obj.data.file_data.path, {encoding : 'utf8'});
let parser=csv.fromStream(stream, parseOptions)
    .on("data", function(row){
        console.log('Row data ----->', row);
        // Prints row
    }).on("end", function(){
      // proccess data here
});

我也尝试过使用二进制、utf16 等编码选项,但似乎没有任何东西可以处理所有字符。有什么方法可以忽略字符集并获取完整的特殊字符或将其转换为 UTF-8 字符集。

标签: node.jscsvcharacter-encodingstream

解决方案


推荐阅读