手持两把锟斤拷,口中疾呼烫烫烫
# 18.手持两把锟斤拷,口中疾呼烫烫烫
这篇文章我们来说说乱码的由来。相信大家基本都遇到过,其中最常见的乱码就是 “锟斤拷” 了 (锟读作kūn)
# 乱码怎么产生的
乱码,一般是在编码的转换过程中产生。例如Unicode是不兼容其他地域性字符编码的,当有些Unicode中的字符,用作GB类编码去解析的时候,就会产生乱码。
在Unicods字符集有一个特殊的替换符号 专门用于表示无法识别或展示的字符,就是一个菱形中间一个问号:�
该符号的UTF-8的编码为 EF BF BD。更多请参考:� - 替换字符: U+FFFD - Unicode 字符百科 (opens new window)
有些编辑器,会在遇到无法识别的字符时,自动将其替换为该符号�,向用户表明这是无法识别的字符;
当有两个该符号的时候,例如��,那么其编码就为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演示,其他编辑器同理
在GitHub上编辑此页 (opens new window)
上次更新: 2022/12/27 21:31:14