原ANSI编码的CSV文件被VSCode转为UTF-8后如何恢复为ANSI编码
批量将UTF-8编码CSV转回ANSI编码的解决方案
转码核心前提:转码前必须确保读取当前UTF-8文件时内容完全正常显示,任何读取阶段的乱码都会导致转码结果错误。
方案1:单文件快速处理(Windows系统内置工具)
- 用Windows系统自带的「记事本」打开目标CSV文件,确认所有内容显示正常
- 点击左上角「文件」-「另存为」
- 在弹窗底部的「编码」下拉菜单中选择ANSI,选择保存路径后确认保存即可
方案2:多文件批量处理(Python脚本)
适合批量处理大量文件,运行前需要提前安装Python环境:
- 修改下方代码中的两个配置项:
target_encoding:填写原ANSI对应的实际编码,中文简体填gbk、繁体填big5、日文填shift_jisfolder_path:填写存放所有待转码CSV文件的文件夹路径
- 运行脚本即可自动批量完成转码
import os # 配置项:修改为对应场景的参数 target_encoding = "gbk" folder_path = r"C:\你的CSV文件存放路径" for file_name in os.listdir(folder_path): if file_name.lower().endswith(".csv"): full_path = os.path.join(folder_path, file_name) # 读取UTF-8格式文件内容 with open(full_path, "r", encoding="utf-8") as f: content = f.read() # 以ANSI编码覆盖保存 with open(full_path, "w", encoding=target_encoding, errors="replace") as f: f.write(content) print(f"已完成转码:{file_name}")
说明:errors="replace"参数会将ANSI编码无法表示的特殊字符替换为?,避免转码过程中断。
方案3:Notepad++正确转码操作(解决之前转码乱码问题)
之前转码乱码大概率是读取文件阶段编码识别错误,按以下步骤操作即可:
- 打开Notepad++后直接拖入待转码的CSV文件
- 查看文件内容,如果显示乱码,点击顶部菜单栏「编码」-「UTF-8」,手动指定编码解析,直到内容完全正常显示
- 再次点击顶部菜单栏「编码」-「转为ANSI编码」
- 保存文件即可完成转码
注意:ANSI不是统一的固定编码,是对应系统默认代码页的统称,不同语言的系统对应的ANSI编码不同,转码前请确认原文件所属语言对应的正确编码,避免转码后出现乱码。
内容的提问来源于stack exchange,提问作者Elcalli
相关产品推荐
相关产品推荐

