You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用csvtojson转换含emoji的CSV时出现乱码问题求助

解决CSV转JSON时的乱码问题

问题原因

你看到的\x00c\x00o\x00m这类字符,说明CSV文件采用的是UTF-16LE编码(每个ASCII字符被编码为两个字节,高字节为0),而你用utf8编码读取,自然会出现乱码。

解决步骤

  • 指定正确编码读取文件
    修改fs.readFileSync的编码参数为utf16le,确保读取到正确的文本内容:

    const path = require('path');
    const fs = require('fs');
    const csv = require('csvtojson');
    
    let csvFilePath = path.join(__dirname, 'reports/xyz.csv');
    // 用utf16le编码读取文件
    let str1 = fs.readFileSync(csvFilePath, { encoding: 'utf16le' });
    
    csv({noheader:true, output: "csv"}).fromString(str1).then((csvRow)=>{
        console.log(csvRow);
    });
    
  • 直接读取文件(推荐)
    让csvtojson直接读取文件并指定编码,省去手动读取的步骤:

    const path = require('path');
    const csv = require('csvtojson');
    
    let csvFilePath = path.join(__dirname, 'reports/xyz.csv');
    
    csv({noheader:true, output: "csv", encoding: 'utf16le'})
      .fromFile(csvFilePath)
      .then((csvRow)=>{
          console.log(csvRow);
      });
    

验证说明

UTF-16LE是Windows环境下导出文件的常见编码(比如Excel导出CSV时可能会使用),指定对应编码后,emoji和普通字符都能正常解析,不会出现乱码。

内容的提问来源于stack exchange,提问作者Hiten Khatri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 19:37:05