字符编码对比与解析 | AI生成和翻译

Home 2025.11

是的,你的理解完全正确!让我来清晰地解释并比较它们。

什么是“编码”(字符编码)?

字符编码是一种系统,它定义了字符(字母、数字、符号、汉字等)在计算机内部如何表示为数字(字节)

因为计算机只理解数字(字节),我们需要一个映射表来说明:

不同的编码就是执行这种映射的不同表格(标准)。

常见编码对比

编码 覆盖范围 每个字符多少字节? 备注
ASCII 仅基础英文:A-Z, a-z, 0-9, 标点 始终 1 字节(实际为 7 位,值 0–127) 非常古老(1960 年代),无法表示中文、带重音符号的字母等
UTF-8 全世界:英文 + 中文 + 俄文 + 阿拉伯文 + 表情符号 + 所有字符(Unicode) 变长
- ASCII 字符:1 字节
- 大多数字符:3 字节
- 表情符号、生僻字:4 字节
向后兼容 ASCII
当今最流行(用于 Web、Linux、macOS 等)
GB2312 / GBK / GB18030 简体中文字符 + 一些其他字符 通常 1–2 字节
- ASCII:1 字节
- 中文字符:2 字节
中国国家标准
GB2312(1980 年):约 7000 个汉字
GBK:GB2312 的扩展,包含更多字符
GB18030:中国现代强制性标准,支持几乎所有汉字 + 少数民族文字
Big5 繁体中文(台湾、香港) 1–2 字节 与 GB2312 理念类似,但用于繁体字

简单示例:字符 “A” 和 “你”

字符 ASCII UTF-8 GB2312/GBK
A 65 (0x41) 65 (0x41) 65 (0x41)
不支持 E4 BD A0 (3 字节) B0 D1 (2 字节)

所以,”你” 在 UTF-8 中需要 3 个字节,但在 GBK 中只需要 2 个字节 → 对于中文文本,GBK 更紧凑,但它无法正确表示韩文、日文或大多数表情符号。

总结:关键区别

实际影响(为何重要)

如果你用 UTF-8 编码打开一个以 GB2312 保存的中文文本文件 → 你会得到乱码(如 ÄãºÃ)。

这就是为什么现代软件默认使用 UTF-8:一种编码统治所有。

所以,是的,你完全正确:


Back

x-ai/grok-4.1-fast

Donate