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

如何解决Excel打开含中日俄字符的CSV文件时非英文字符乱码问题

问题原因

生成的CSV为无BOM头的UTF-8编码文件,Excel打开CSV时默认无法自动识别无BOM的UTF-8编码,会调用系统本地默认编码(如简体中文环境下为GBK)解析,中俄日等非ASCII字符就会显示乱码。文件本身存储的内容完全正确,乱码仅为Excel编码解析逻辑导致。

修复方案

方案1:写入文件时添加UTF-8 BOM头(推荐,用户打开无需额外操作)

在生成的CSV内容最开头拼接UTF-8 BOM标识\uFEFF,Excel识别到该标识后会自动以UTF-8编码解析文件,乱码问题直接解决。
修改后的代码示例:

const fs = require("fs")

async function main() {
  let table = [ 
    [ "en", "ch-zh", 'ru', 'ja' ],
    [ "Hello", "你好", "Привет", "こんにちは" ]
  ]

  let csvContent = array2csv(table)
  // 仅文件首次创建时添加BOM头,追加写入时不要重复添加
  if (!fs.existsSync(__dirname +"/i18n.csv")) {
    csvContent = '\uFEFF' + csvContent
  }

  fs.writeFileSync(__dirname +"/i18n.csv", csvContent, { encoding: "utf8", flag: 'a', mode: 0o666 })
}
main()

function array2csv(arr){
  arr = arr.map((col) => { return col.join(",") })
  arr = arr.join("\n")
  return arr
}

方案2:Excel导入时手动指定编码(无需修改生成逻辑)

如果不需要修改文件生成逻辑,可在Excel中手动导入文件指定编码:

  • 打开Excel,切换到「数据」选项卡
  • 选择「自文本/自CSV」,选中目标i18n.csv文件
  • 导入配置中编码选择65001: Unicode (UTF-8),分隔符选择逗号,点击加载即可正常显示所有字符
异常显示效果

异常效果截图

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:30:51