手持两把锟斤拷,口中疾呼烫烫烫

这篇文章我们来说说乱码的由来。相信大家基本都遇到过,其中最常见的乱码就是 “锟斤拷” 了 (锟读作 kūn):

Excel 乱码截图

乱码怎么产生的

乱码,一般是在编码的转换过程中产生。例如 Unicode 是不兼容其他地域性字符编码的,当有些 Unicode 中的字符,用作 GB 类编码去解析的时候,就会产生乱码。

在 Unicods 字符集有一个特殊的替换符号,专门用于表示无法识别或展示的字符,就是一个菱形中间一个问号:�

该符号的 UTF-8 的编码为 EF BF BD。更多请参考:� - 替换字符: U+FFFD - Unicode 字符百科

有些编辑器,会在遇到无法识别的字符时,自动将其替换为该符号 �,向用户表明这是无法识别的字符;

当有两个该符号的时候,例如 ��,那么其编码就为 EF BF BD EF BF BD

而如果用 GBK 的格式去解析 EF BF BD EF BF BD 的时候,由于 GBK 是 2 个字节表示一个汉字,因此会解析成:

  • EF BF:锟
  • BD EF:斤
  • BF BD :拷

这就是锟斤拷的由来了。

实践

先创建一个 txt,其编码方式改为 UTF8,并输入 ��,然后用 GBK 的格式打开,就能看到了:本例通过 VSCode 演示,其他编辑器同理

posted @ 2024-06-18 09:42  peterjxl  阅读(250)  评论(0编辑  收藏  举报