本文最后更新于 2026年6月10日。
经常写代码的朋友对下面内容应该不陌生

为什么乱码就出现——锟斤拷 ?
因为:锟斤拷 = UTF‑8 的替换符 � 被当成 GBK 解码,刚好拼出这三个字。
1. 关键角色:U+FFFD(替换符)
- 当程序遇到看不懂的字节(坏数据、不认识的编码、截断),会用一个特殊符号占位:
U+FFFD = �(显示为方框/问号) - 它的 UTF‑8 编码固定是 3 字节:
EF BF BD
2. 怎么变成“锟斤拷”
- UTF‑8 视角:连续两个替换符:
EF BF BD EF BF BD - 被错误当成 GBK 解码:GBK 是每 2 字节一个汉字,于是把上面切成:
EF BF → 锟 BD EF → 斤 BF BD → 拷 - 结果:锟斤拷。
3. 为什么它特别常见
- 国内老系统(Windows、旧网页、数据库)常用 GBK;
- 新系统/网络/网页多用 UTF‑8;
- 只要:UTF‑8 数据 → 被 GBK 打开 → 遇到乱码/截断 → 产生 � → 拼出锟斤拷。
4. 快速记忆
- 锟斤拷:UTF‑8 坏数据 → 替换符 � → 被 GBK 两字节一切 → 固定组合。
- 类似还有:烫烫烫(内存未初始化)、屯屯屯等,都是特定字节模式被错解。