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

如何批量将ANSI编码的CSV文件转换为UTF-8编码

批量ANSI编码CSV转UTF-8操作方法

针对你列出的7个ANSI编码CSV文件,提供两种可直接落地的操作方案:

方案1:Windows PowerShell 无额外依赖方案

不需要安装任何软件,适合Windows系统用户:

  • 将所有待转换CSV放到同一个独立文件夹中,按住Shift键在文件夹空白处右键,选择「在此处打开PowerShell窗口」
  • 执行以下命令,脚本会自动备份原文件为.bak后缀,再完成转码输出UTF-8无BOM格式文件:
Get-ChildItem -Filter *.csv | ForEach-Object {
    Copy-Item $_.FullName "$($_.FullName).bak"
    $content = Get-Content $_.FullName -Encoding Default
    Set-Content $_.FullName -Value $content -Encoding UTF8
}

简体中文Windows系统下Default编码即对应文件存储用的ANSI(GBK)编码,转码不会出现乱码。确认转码后文件内容正常,即可删除所有.bak备份文件。如果需要适配旧版Excel识别UTF-8,把命令里的UTF8替换为UTF8BOM即可。

方案2:Python跨平台方案

Windows/macOS/Linux系统通用,适合已安装Python3环境的用户:

  • 将以下脚本保存为convert.py,放到CSV文件所在目录运行即可,脚本会自动备份原文件再执行转码:
import os

target_files = [
    "2022-01-07.csv",
    "2022-01-11.csv",
    "2022-01-14.csv",
    "2022-01-21.csv",
    "2022-02-08.csv",
    "2022-02-17.csv",
    "2022-02-21.csv"
]

for file in target_files:
    if not os.path.isfile(file):
        print(f"跳过不存在的文件:{file}")
        continue
    # 备份原文件
    with open(file, "rb") as f:
        raw = f.read()
    with open(f"{file}.bak", "wb") as f:
        f.write(raw)
    # 转码写入,遇生僻字可将gbk替换为gb18030
    try:
        text = raw.decode("gbk")
        with open(file, "w", encoding="utf-8") as f:
            f.write(text)
        print(f"转换完成:{file}")
    except Exception as e:
        print(f"{file}转换失败:{str(e)},原文件已备份未损坏")

如果需要输出带BOM的UTF-8格式,把写入时的encoding参数从utf-8改为utf-8-sig即可。

转码注意事项

  • 不要跳过备份步骤,避免编码识别偏差导致文件内容损坏
  • 转码完成后随机打开2-3个文件抽查,确认中文、数字、特殊符号均无乱码再清理备份
  • 不要用系统自带记事本直接另存为批量操作,容易出现格式错乱、引号转义错误的问题

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 11:15:18