技能教程 · TUTORIAL
文件乱码修复 / 编码转换 · 详细教程
纯本地探测文件真实编码、把乱码文件转回正常中文、做编码转换。不联网、不需要 API Key。
这是什么
encoding-fix 是一个跑在你自己机器上的编码修复工具。它能探测文件的真实编码,把 鏂囦欢 / 文件 这种乱码修回正常中文,也能把 GBK / Big5 / Shift-JIS 等转成 UTF-8。
零依赖:不联网、不需要 API Key,只用 Python 标准库。
适合谁 / 不适合谁
- ✅ 下载的 csv、爬回来的网页、老旧文档打开是一堆问号/方块/怪字。
- ✅ 一整个目录的文本文件要统一成 UTF-8。
- ✅ CSV 用 Excel 打开中文乱码(加 BOM 即可)。
- ❌ 已经变成
锟斤拷/ 一堆?/\ufffd的文件:原始字节在上一轮错误解码里被永久替换,任何工具都还原不了,只能找回原始文件重新导出。 - ❌ 只处理文本;图片、zip、视频等二进制会被自动跳过。
怎么部署
- 下载解压:点页面顶部的「下载 …」拿到 zip,解压得到一个
encoding-fix/文件夹(里面是SKILL.md和scripts/)。 - 装进 AI 助手:把整个
encoding-fix/文件夹放进你所用助手的 skills 目录,助手就能自动发现它 ——
- WorkBuddy / CodeBuddy(用户级):
~/.workbuddy/skills/encoding-fix/,Windows 上是C://Users//<你的用户名>//.workbuddy//skills//encoding-fix//; - 只想在某个项目里用:
<项目目录>/.workbuddy/skills/encoding-fix/。
- 零依赖:这个包不需要装任何依赖,放进去就能跑。
- 用起来:直接跟助手说要做什么(例:「这个 csv 打开是乱码,帮我修一下」),它会调用;想手动跑也行:
python scripts/fix.py --help
用法
铁律:先看,再改。永远先跑 detect,把结果给用户看过再决定要不要 --apply。
探测编码(安全,随便跑)
python scripts/fix.py detect 文件.txt
python scripts/fix.py detect 目录/ --recursive --ext .txt,.csv,.md
发现乱码时会直接给你修复命令。
转换编码
python scripts/fix.py fix 文件.txt --to utf-8 # 预览
python scripts/fix.py fix 文件.txt --to utf-8 --apply # 写盘
python scripts/fix.py fix 目录/ --to utf-8 --recursive --ext .txt,.csv --apply
自动判断源编码;判断不准时用 --from 强制指定。
修乱码(--fix-mojibake)
专治已经被「存坏」的文件:
| 你在编辑器里看到 | 修法 |
|---|---|
鏂囦欢 涓枃 | --fix-mojibake |
文件 ä»å¤© | --fix-mojibake |
文(双重乱码) | --fix-mojibake(会尝试连修两层) |
python scripts/fix.py fix 坏文件.txt --fix-mojibake --to utf-8 --apply
如果文件只是编码不对、内容没坏(换个编码打开就正常),不需要 --fix-mojibake,直接转编码即可。
常用参数
| 参数 | 作用 |
|---|---|
--to | 目标编码,默认 utf-8 |
--apply | 真的写盘。不加就是预览 |
--fix-mojibake | 修已经被存坏的乱码 |
--from | 强制指定源编码(自动判断不准时的逃生口) |
--add-bom | 输出加 UTF-8 BOM —— Excel 打开 CSV 不乱码就用这个 |
--strip-bom | 输出去掉 BOM(代码/配置文件一般要去掉) |
--no-backup | 写盘时不生成 .bak 备份(默认生成) |
--max-size | 超过这个字节数就跳过,默认 20MB |
常见场景速查
| 场景 | 命令 |
|---|---|
| 单个 txt 打开是乱码 | detect → 看提示 → 按提示 fix |
| CSV 用 Excel 打开中文乱码 | fix a.csv --to utf-8 --add-bom --apply |
| 整个项目 Java/Properties 转 UTF-8 | fix src/ --to utf-8 --recursive --ext .java,.properties --apply |
| 字幕文件(srt/ass)乱码 | fix 字幕.srt --fix-mojibake --to utf-8 --apply(先用 detect 确认) |
| 从 Windows 拷来的 GBK 文件 | fix 目录/ --from gbk --to utf-8 --recursive --apply |
安全设计(可以放心跑)
- 默认 dry-run:不加
--apply只打印「会改什么」,一个字节都不动。 - 默认留备份:写盘前生成
原文件名.bak,可用--no-backup关掉。 - 二进制自动跳过:含 NUL 字节的文件(图片、zip、视频)直接跳过,不会改坏。
- 乱码门:只有文本确实像乱码时才尝试修复,健康的中文 / 英文不会被误改。
- 修不动就认:找不到更像人话的解法时会明确说「看着不像乱码,不用修」,不会瞎改。
想要加功能
包里目前是 SKILL.md + scripts/fix.py。想加批量规则、特定行业编码预设、或接进你们自己的系统 → 用页面底部的联系方式找我,说清场景,我帮你做。