账号安全

带 BOM 的 JSON 报错:编码坑

做 API 对接的朋友大概都踩过这个坑:明明 JSON 长得没问题,解析时却报「Unexpected token」。多半是文件头带着 BOM——一个肉眼看不见的编码标记,被悄悄塞在了最前面。

BOM 常见于 Windows 记事本或者某些老旧的报表导出。它占三个字节,混在文件开头,很多严格模式的解析器碰到就直接报错。你盯着内容看半天,永远发现不了藏在头上的「幽灵字符」。

我把配置和密钥类的 JSON 都用 JSON 校验(本地)先过一遍。它直接在浏览器里解析,能立刻定位是不是 BOM,或者少了个逗号、引号没闭合。整个过程不联网,你的 token、密钥不会传出去。

顺手说个习惯:从别处拿到的 JSON,先校验再贴进代码。曾经有次把带 BOM 的配置文件直接丢进 CI,流水线挂了一晚上,排查时才反应过来是编码头在作祟。

修起来不难,本地去掉 BOM 重存成 UTF-8 无 BOM 就行。但前提是先知道「病根」在编码而不是语法。养成「导入先校验」的习惯,能省掉很多半夜被报警叫起来的时间。

相关本地工具(打开即用,零上传)