为什么乱码就出现 锟斤拷

70 次阅读

本文最后更新于 2026年6月10日。

经常写代码的朋友对下面内容应该不陌生
Pasted image 20260609103458.png

为什么乱码就出现——锟斤拷 ?

因为:锟斤拷 = 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 两字节一切 → 固定组合。
  • 类似还有:烫烫烫(内存未初始化)、屯屯屯等,都是特定字节模式被错解。