功能关键词:批量转换文本编码、UTF-8与GBK之间的转换、BOM设置、编码检测、字幕及代码文件的编码转换。
工具介绍
文件编码批量转换工具用于统一纯文本文件的字符编码,支持TXT、CSV、JSON、网页、代码、字幕等扩展名,也可以添加其他文本扩展名。适用于将一系列文本转换为目标软件所需的编码,或先查看自动检测到的编码分布。
页面提供了独立的“仅检测编码”和“开始转换”操作入口、输出编码、UTF-8 BOM、并行线程以及子目录结构。它转换的是文本的字节编码,不负责翻译文本,也不是将二进制文档变成纯文本。
工具截图

主要功能
- 添加多个文件或文件夹,通过多次浏览或拖动来添加源。
- 按常见扩展名选择纯文本文件,或通过逗号分隔的列表补充自定义扩展名。
- 通过采样自动检测源编码,并以UTF-8、GBK、UTF-16等目标编码重写文本。
- 仅检测模式显示文件路径、检测到的编码、置信度、大小以及主要编码的分布。
- 可以为UTF-8添加BOM头,也可以直接选择UTF-8 BOM输出。
- 按照页面提示保存到新目录或原地覆盖,并在递归处理过程中保留源内部的相对结构。
- 转换提供1至16个线程、进度以及成功/跳过/失败日志;检测则逐个文件采样。
使用前的准备
请先按照页面警告,自行备份原文件。请准备可读取的纯文本文件或文件夹;说明中明确指出,PDF和EPUB等二进制格式不支持编码转换。
请至少选择一种文件格式,或输入自定义扩展名;单独选择的文件也必须通过扩展名筛选。
多个源路径请用半角分号分隔,自定义扩展名请用半角逗号分隔。建议准备一个独立的新保存目录;留空时将使用原地保存模式。
详细操作步骤
1. 添加源,并决定保存到新目录还是原地覆盖
在“路径设置”的源文件/文件夹行中点击“浏览”,选择文件夹、单个文件或多个文件。浏览和拖放会以半角分号追加条目,界面允许多次添加;手动输入的多个路径也用分号分隔。请避免重复添加相同的源或相互重叠的父目录和子目录。
默认仅处理源文件夹的当前层级。如果需要下级文件,请勾选“遍历子目录”,然后根据需要勾选随之启用的“保留原路径结构”;取消勾选遍历时,也会取消勾选保留结构。
在保存目录行中点击“浏览”,选择新的输出目录。留空时,需要转换的源将原地保存,顶部已提醒用户务必备份;初学者请优先保存到源之外的独立目录。界面没有在覆盖前逐个文件确认的功能。
保留结构仅影响另存目录下源内部的相对层级,不会额外区分多个源的根名称。由于不同源中具有相同相对名称的文件可能落到同一保存位置,建议按源整理为不同批次;程序也不会自动排除源内的输出目录。

2. 选择需要转换的文本扩展名
在“参数与控制”的文件格式行中,选择实际需要的类型;可以多选。页面列出了txt、csv、json、xml、html、md、py、js、sql、log、ini、srt、lrc,初始状态下均未选择。
请按照提示,在“自定义扩展名”中以vue,jsx,tsx,scss等半角逗号分隔的列表输入其他纯文本扩展名;可以使用点号,输入项会转为小写,并与已选格式合并。请勿在此输入完整文件名、路径或二进制文档格式。
扩展名筛选使用最后一个后缀,不区分大小写,不检查内容类型。即使已选择源,如果未勾选或补充格式,也不会被视为候选;完全没有格式条件时,页面会要求先选择。

3. 选择目标编码,确认BOM和线程
展开“输出编码”,按照接收方软件的要求选择。页面提供了UTF-8、UTF-8 BOM、UTF-16、UTF-16 LE、UTF-16 BE、GBK、GB2312、GB18030、BIG5、ASCII、Latin-1、Shift-JIS、EUC-KR;菜单较长,还可以继续滚动。
默认的UTF-8不会主动添加BOM;选择UTF-8后,勾选“添加BOM头”,就会切换为带BOM的UTF-8。直接选择UTF-8 BOM时,即使未勾选复选框,也会包含头;此复选框并不是为GBK等所有编码任意添加BOM。
并行线程数为1至16,默认值为4,控制转换时同时处理的文件数。仅检测模式会逐个文件采样,不使用此并行数。保持默认值,或根据当前任务规模减少线程数即可。
源编码由软件读取开头的64 KiB自动推测,没有手动指定源编码或在置信度较低时强制暂停的选项;推测失败时,转换会回退到UTF-8。检测置信度仅供推测参考,并不意味着全文已通过验证。

4. 实际使用时,先检测,再开始转换并查看日志
确定自己的源、格式和保存策略后,可以先点击“仅检测编码”。它会实际从候选文件中读取样本,显示包含文件路径、检测到的编码、置信度、文件大小的编码结果表,上方显示主要编码分布的概览;不会执行文本转换。如果输入了尚不存在的保存目录,输入验证可能会先创建目录。
确认需要转换后,点击“开始转换”,软件会在检查登录和权限后,按照当前目标编码处理文件。被判定为与目标编码相同的源会被“跳过”,不会仅为了新的保存目录而创建同编码文件的另一份副本。
进度表示已收集结果的候选文件任务比例,日志分别显示成功、跳过和失败,概览也会统计这三项;“完成”状态并不意味着所有候选均已成功。需要结束处理时,请点击“停止”;尚未开始的任务可以取消,但当前正在读取或写入的文件可能继续处理,已写入的输出不会撤销。
程序会替换无法解码或编码的字符,因此可能丢失原始文本;对大文件分块处理也不能保证全文无损。因此,请勿直接覆盖唯一的原始副本,并按照目标字符集的实际要求进行选择。本教程未执行检测或转换,也未创建检测结果表。

主要参数说明
| 参数 | 功能 | 建议 |
|---|---|---|
| 文件格式 | 13种常见文本扩展名的复选框 | 初始状态下未选择;请至少选择一种,或添加自定义扩展名。 |
| 自定义扩展名 | 以逗号分隔的列表,与已选项目合并 | 请仅输入纯文本扩展名;字母大小写会自动统一。 |
| 输出编码 | 13种目标编码名称 | 请按照使用文件的软件的要求进行选择。 |
| 添加BOM头 | 将UTF-8目标改为UTF-8 BOM | 直接选择UTF-8 BOM也有相同效果。 |
| 并行线程 | 1~16,默认值4 | 仅控制转换,不改变采样精度。 |
| 遍历子目录 | 包含下级文件 | 取消勾选后,仅处理源的当前层级。 |
| 保留原路径结构 | 另存时保留相对目录 | 需要先勾选遍历。 |
| 保存目录 | 另存到新目录;留空则原地保存 | 请先备份,优先使用独立目录。 |
结果与保存
另存时保留原文件名和扩展名,如果目标名称已存在,程序会尝试添加_1等编号;保留结构时,会添加源内部的相对路径。任务准备期间不会预留同名保存位置,来自多个源的候选或具有重复名称的候选可能争用同一路径,因此不能将编号说明视为批次内同名文件绝不会被覆盖的保证。
跳过同编码文件也不会生成另存副本,因此输出数量可能少于候选数量;ASCII等与UTF-8兼容的源,其检测名称可能不同,是否跳过取决于软件对规范化后的编码名称的比较,不能仅凭“看起来能读”来推测。
超过10 MiB的文件使用分块写入和.tmp临时文件。保留结构时,大文件的分支处理不会自动创建不存在的嵌套目录;Windows上的原地替换也可能因原目标已存在而失败。如果日志显示目录不存在或重命名失败,请按照提示处理保存位置,并先保留原文件。
“仅检测编码”有结果表,但没有导出按钮;主界面也没有打开输出目录、下载、导出日志或自动报告的操作入口。需要保留日志时,可以在只读日志区域选择并复制文本,并在输入的保存目录中查看已转换文件。
常见问题与使用建议
1. 可以转换PDF或EPUB吗?
说明中明确指出不支持这些格式;它们不是此处处理的纯文本编码文件。
2. 可以不勾选格式就选择文件吗?
不可以,明确选择的文件也需要通过扩展名条件,因此请至少选择一种,或输入自定义列表。
3. 多个源用逗号分隔吗?
源使用半角分号;只有自定义扩展名使用半角逗号。
4. 保存目录留空会怎样?
需要转换的文件将保存到原路径,即原地覆盖模式,页面要求先备份。
5. “仅检测编码”会更改文本内容吗?
不会转换内容,但输入验证可能会创建所输入的保存目录;检测仍会读取文件样本。
6. 检测置信度高就能保证全文正确吗?
不能,只检查开头64 KiB的样本,不进行全文一致性验证。
7. 未勾选BOM,为什么UTF-8 BOM输出仍有头?
直接选择UTF-8 BOM就已经确定包含头,复选框主要用于UTF-8目标。
8. 为什么跳过的文件没有出现在新目录中?
同编码判定会在写入前返回跳过,不执行另存复制。
9. 可以手动指定源编码吗?
当前页面仅提供目标编码选择,源通过采样自动检测。
10. 停止会撤销转换吗?
不会,已写入的文件会保留,当前正在处理的任务可能继续,此按钮不能用于恢复原始文本。




日期整理工具-00-main-interface.png)