C 源文件编码保全
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_a8bb82de/c-encoding。
技能介绍
问题背景
在 Windows 或遗留 C 工程里,.c、.h 往往仍是 GB2312 或其它本地编码保存。Agent 若直接用 UTF-8 读写,或保存时统一成 UTF-8,中文注释会变成乱码;若强行改成 GB2312,又会破坏原本就是 UTF-8 的文件。需要的是:按文件真实编码读入、在统一编码下改内容、写回时仍用原来的编码。
技能如何工作
本技能把修改 C 源文件拆成固定四步,且 步骤 0 每次必做:
- 检测原编码:通过 Bash 调用 PowerShell,把检测结果写入
%TEMP%下的临时文件。 - 修改前转 UTF-8:按步骤 0 的编码读入,再以 UTF-8 落盘,便于
Read/Edit稳定处理文本。 - 正常改代码:在已是 UTF-8 的文件上做逻辑与注释修改。
- 修改后恢复原编码:再把 UTF-8 内容转回步骤 0 记录的编码,并清理临时文件。
检测范围包括 UTF-8(含/不含 BOM)、UTF-16 LE/BE、UTF-32、GB2312;检测失败时 默认按 GB2312 处理,以兼容老项目。
适用边界与注意
- 强制范围:凡改动项目中的
.c、.h,都应走完整流程,不可跳过步骤 0 或省略恢复步骤。 - 环境:编码转换依赖 PowerShell;路径建议用正斜杠
/或双反斜杠\\,整条命令用单引号包裹。 - 结果预期:完成后文件编码与改前一致,而不是统一成某一种「项目标准编码」。
使用场景
- 维护仍用 GB2312 保存的嵌入式 C 工程,需要在不改乱码的前提下改驱动里的中文注释
- 在 Windows 上让 Agent 改 `.h` 头文件接口说明,改完后磁盘编码须与改前检测结果一致
- 批量调整老项目 `.c` 实现时,先转 UTF-8 编辑再按步骤 0 记录的编码写回
- UTF-8 与 GB2312 混用的 C 仓库里,单次改动单文件也要走检测—编辑—恢复四步流程
适合人员
- 维护 Windows 下 Visual Studio 老 C 项目、注释多为 GB2312 的固件工程师
- 接手编码不统一的历史 C 代码库、需 Agent 改 `.c`/`.h` 的后端或系统程序员
- 在 SkillHub 工作流里强制规范 C 源文件改动、避免中文注释被 UTF-8 误写的技术负责人
- 用 AI 辅助改内核或驱动层 C 源码、且仓库禁止擅自统一成 UTF-8 的维护者