mojibake_repairer 乱码修复Skill
功能概述
自动检测文本中的编码乱码(Mojibake),尝试 11 种编码修复链(gbk→utf-8、latin-1→utf-8、shift_jis→utf-8 等),通过字符合理度评分选择最佳结果。支持中、日、韩、西文等多语言乱码场景。
触发条件
- 乱码修复 / 编码修复
- Mojibake 检测
- 编码错误纠正
- 文字乱码处理
- 数据库导出编码错乱
核心参数说明
必需参数
| 参数 | 说明 |
|---|---|
--input_path |
输入文件路径 |
--output_path |
输出文件路径 |
可选参数
| 参数 | 说明 | 默认值 |
|---|---|---|
--text_columns |
处理的文本列,逗号分隔;不填则处理全部字符串列 | 全部字符串列 |
--min_score |
最小修复评分阈值(0-1) | 0.6 |
--chain |
手动指定编码修复链,如 gbk:utf-8 | 自动检测 |
输入文件格式
输入为结构化表格,至少包含一个可疑乱码文本列:
id,text
1,"François visited São Paulo for café research."
支持的文件格式
- CSV (.csv) / TSV (.tsv) / Excel (.xls, .xlsx) / SPSS (.sav)
使用方法
python scripts/mojibake_repairer.py \
--input_path <输入文件> \
--output_path <输出文件> \
[--text_columns col1,col2] \
[--min_score 0.6] \
[--chain gbk:utf-8]
参数说明
| 参数 | 必填 | 说明 |
|---|---|---|
--input_path |
是 | 输入文件路径 |
--output_path |
是 | 输出文件路径 |
--text_columns |
否 | 处理的文本列 |
--min_score |
否 | 最小修复评分(默认0.6) |
--chain |
否 | 手动指定编码链 |
输出示例
[REPAIR] 共修复 3 处乱码:
[text][行0] gbk→utf-8 (score=1.00)
娴嬭瘯鏁版嵁 → 测试数据
[text][行1] latin-1→utf-8 (score=1.00)
café résumé → café résumé
[OK] 乱码修复完成 -> output.csv (模式=自动检测, min_score=0.6)
环境要求
使用仓库内 Python 环境运行,无额外第三方依赖;读取/写入复用共享 data_io。
注意事项
- 自动模式尝试 src_encoding→utf-8 方向,避免反向链的误报
- 编码失败产物(? 和 �)超过 15% 的修复结果会被拒绝
- 原始文本评分已经很高时(如正常 CJK 文本),不会误触发修复
- 可通过
--chain手动指定编码链覆盖自动检测