
如果您在 Windows 系统中打开多个 .txt 文件时频繁遭遇中文显示为“锟斤拷”“烫烫烫”或方块问号,这通常是由于文件原始编码(如 UTF-8)与当前打开程序默认解码方式(如 ANSI/GBK)不匹配所致。以下是解决此问题的步骤:
一、使用记事本+批处理脚本手动批量转换
该方法无需额外安装软件,利用 Windows 自带记事本和命令行能力,通过循环调用记事本的另存为逻辑实现批量转换,适用于少量文件且需保留原始结构的场景。
1、新建一个文本文档,输入以下内容并保存为 convert_utf8_to_ansi.bat(注意扩展名必须为 .bat):
2、在文件中写入:@echo offsetlocal enabledelayedexpansionfor %%f in (*.txt) do ( echo 正在处理: %%f powershell -Command “Get-Content ‘%%f’ -Encoding UTF8 | Set-Content ‘%%~nf_ansi.txt’ -Encoding Default”
3、将该批处理文件与待转换的 .txt 文件置于同一文件夹内。
4、双击运行批处理文件,系统将为每个 UTF-8 编码的 .txt 生成一个以 “_ansi” 结尾的新文件,其编码为系统默认 ANSI(即 GBK)。
5、确认新文件无乱码后,可手动删除原文件并重命名新文件为原始名称。
二、使用 PowerShell 一行命令全自动覆盖转换
该方法直接读取并重写文件内容,强制统一为系统本地 ANSI 编码,支持递归处理子目录,适合技术用户快速执行且不留副本。
1、按住 Shift + 右键 当前文件夹空白处,选择“在此处打开 PowerShell 窗口”。
2、粘贴并执行以下命令:Get-ChildItem -Path . -Recurse -Filter “*.txt” | ForEach-Object { $content = Get-Content $_.FullName -Encoding UTF8 -ErrorAction SilentlyContinue; if ($content) { $content | Set-Content $_.FullName -Encoding Default } }
3、命令执行期间,PowerShell 将跳过非 UTF-8 可读文件,仅对能成功解析为 UTF-8 的文本执行覆盖写入。
4、完成后所有目标 .txt 文件均已被就地转为系统默认 ANSI 编码(中文 Windows 下为 GBK)。
三、使用专业编码转换工具进行可视化批量处理
该方法提供编码自动检测、多线程并行、BOM 控制及路径结构保留功能,适合需高可靠性、大批量(数百至数千文件)且含混合编码的复杂场景。
1、下载并安装 批量文件编码转换工具(支持 Windows 10/11,绿色免安装版可用)。
2、启动软件后,在“源路径”栏拖入包含 .txt 文件的文件夹,勾选 遍历子目录。
3、在“格式区”勾选 .txt,并在“输出编码”下拉菜单中选择 ANSI (GBK)。
4、设置“保存目录”为新路径(避免覆盖),勾选 保持原路径结构。
5、点击 开始转换,工具将自动检测各文件真实编码,仅对非 ANSI 文件执行转换,并跳过已符合目标编码的文件。

评论(0)