<aside> <img src="/icons/font_brown.svg" alt="/icons/font_brown.svg" width="40px" />

核心原则:一切乱码的根源都是“解码”时用错了“编码”规则

</aside>

想象一下,你和朋友约定了一个密码本:1代表A2代表B3代表C...

乱码是怎么发生的呢?

假设你的朋友用错了密码本。他的密码本是:1代表X2代表Y3代表Z

计算机世界里的乱码就是这个原理。一份文本文件在保存时,计算机会根据一种编码规则(如 UTF-8 或 GBK)将字符(如“你好”)转换成二进制字节序列(如 E4BDA0 E5A5BD)。当你要打开这个文件时,你的软件(如记事本、浏览器)会尝试用一种它认为正确的编码规则去解码这些字节。如果它猜错了编码规则,乱码就诞生了。


几种经典的乱码场景与实例分析

我们以汉字“你好”为例,来看看它在不同编码下的样子:

现在我们来模拟一下用错误的“密码本”(解码方式)会发生什么。

场景一:把 UTF-8 编码的文本,当作 GBK 来显示

这是最常见的一种乱码。

  1. 保存:你有一个文件,里面写着“你好”。你用 UTF-8 格式保存。文件里实际存储的字节是 E4 BD A0 E5 A5 BD