From 5e0c702369a09485e0ec057d160e7f0c3e40acc3 Mon Sep 17 00:00:00 2001 From: Wanderingss <1624155937@qq.com> Date: Wed, 28 Oct 2026 08:17:01 +0800 Subject: [PATCH] =?UTF-8?q?docs(=E6=96=87=E6=A1=A3=E8=A7=84=E8=8C=83):=20?= =?UTF-8?q?=E7=AC=AC=202=20=E8=8A=82=E8=A1=A5=E4=B8=80=E8=A1=8C=20run=5Fco?= =?UTF-8?q?de=20=E6=AD=A3=E6=96=87=E5=86=99=E6=B3=95=E5=8F=A3=E5=BE=84?= =?UTF-8?q?=E2=80=94=E2=80=94=E8=90=BD=E7=82=B9=E9=80=89=E5=9C=A8=E4=B9=B1?= =?UTF-8?q?=E7=A0=81=E8=A1=8C=E4=B9=8B=E5=90=8E=EF=BC=8C=E5=94=AF=E4=B8=80?= =?UTF-8?q?=E9=94=9A=E7=82=B9=E5=8F=AF=E6=96=AD=E8=A8=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 第 2 节的表原来只讲编码、换行、行尾空白、文件尾、乱码五件事, 把长中文正文写进 run_code 程序体这一路一直没有口径,同一族写法事故在一个会话里复发八次。 现象分三类:混用引号或正文里塞进 ASCII 双引号,报 Expected 逗号 got ident; 反引号与 shell 专有量(状态数组、退出码变量)混进程序体同样解析失败; 字段名位置误用全角冒号,也是同一类语法错。 而解析一失败,同一程序里其后的写文件与提交全部静默零落地,只留下一个从未存在的临时文件, 下一轮复用它就以 ENOENT 或提交 128 退出收场,返工成本整轮落在这条链上。 现补第 6 件:整个程序只用一种 ASCII 引号定界,中文引号一律「」,反引号字符现取再拼, 正文逐行进数组,落盘后打印 bom、crlf、超 80 字符行数与占位残留四个卫生数复核。 本笔只加这一行,零编号增删,门禁口径与钩子计数都不动。 --- docs/文档规范.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/文档规范.md b/docs/文档规范.md index f40cf13c..b0662849 100644 --- a/docs/文档规范.md +++ b/docs/文档规范.md @@ -56,6 +56,7 @@ | 行尾空白 | 禁止(pre-commit `trailing-whitespace` 自动清理) | | 文件尾 | 必须以单个换行结束(`end-of-file-fixer`) | | 乱码 | 禁止出现 `U+FFFD`(替换字符,字节序列 `EF BF BD`) | +| 长中文正文与跨语言字面量 | 经 run_code 等程序化工具改写本文时,程序体内定界符只用一种 ASCII 引号;正文里的中文引号用全角「」,反引号字符用码位现取后再拼,不把反引号或 shell 变量形态写进字面量。落点选唯一锚点并断言命中数为 1,全部替换在内存串上跑完才一次性写回;落盘后打印 bom、crlf、乱码字节数与占位残留,并回读目标行确认已是新文本 | > ⚠️ **本仓库 BOM 铁律**(见 `AGENTS.md`「铁律:源码编辑与编码」):C 源码中 `Drivers/BSP/UI/*`、`App/task/ui_task.c`、`App/cfg/cfg_file.c`、`Lib/lv_conf.h` 等**带 BOM**,被工具改写后 BOM 会静默丢失 → ARMCC 改按 CP936 解码 → 中文字面量编译失败。 > **文档(`.md`)不受此限**,一律用无 BOM UTF-8。