😀 - 这张脸是怎么传递的?
当你在微信上给朋友发送 😂 时,这个表情符号是如何到达对方手机的?是发送了一张图片吗?实际上并不是。表情符号是以"字符"的形式发送的。
表情符号是"字符"
表情符号和字母"A"或汉字"山"一样,都是"字符"。在计算机世界中,每个字符都被分配了一个编号。"A"是 65 号,汉字"山"是 23665 号,😀 (笑脸) 是 128512 号。
这套编号系统叫做 Unicode。Unicode 是一个国际标准,将全世界的文字统一在一个编号体系下管理,2025 年 9 月发布的 Unicode 17.0 已注册约 16 万个字符。表情符号也是这个体系的一部分。
所以当你发送 😀 时,实际在网络上传输的只是数字"128512" (以 UTF-8 字节序列编码)。那个彩色的笑脸图案是接收设备在收到数字后绘制出来的。
为什么同一个表情符号在不同设备上看起来不一样
从 iPhone 发送的 🍕 (披萨) 在 Android 上可能会显示为略有不同的设计。这是因为 Unicode 只定义了编号和名称,"披萨表情 = U+1F355",而实际的设计由各平台自行决定。
- Apple:写实的立体风格设计
- Google:圆润的流行风格设计
- Samsung:独特风格 (曾因与其他厂商差异过大而引发话题)
- Microsoft:从扁平设计过渡到 3D 设计
- X (原 Twitter):使用自有的 Twemoji 表情集
设计差异可能导致误解。2016 年明尼苏达大学研究团队发表的调查显示,针对 5 个平台绘制的 22 个人形表情符号,即使是同一个表情符号,不同的绘制方式也会导致读者感受到的情感出现偏差。
表情符号乱码 - 为什么会变成 □ 或 ?
有时你发送一个新的表情符号,在对方屏幕上却显示为 □ (豆腐块) 或 ?。这是一种字符编码失败的现象。
- 操作系统过旧:每年都会新增表情符号,但旧版操作系统没有对应的字体
- 不支持的字体:收到了编号,但设备没有该编号对应的设计
- 编码不匹配:极少数情况下,字符编码转换可能导致编号偏移
□ 符号被称为"豆腐",因为它的方形看起来像一块豆腐。Google 的字体"Noto"名称来源于"No more tofu" (不再有豆腐块)。
新表情符号是如何添加的
新表情符号由非营利组织 Unicode 联盟每年审核并添加。任何人都可以提议新的表情符号,但必须通过严格的审核才能被采纳。
- 提案必须包含"为什么需要这个表情符号"的证据
- 必须证明现有表情符号无法替代
- 代表特定公司或品牌的表情符号会被拒绝
- 从提案到采纳通常需要约 2 年时间
2010 年表情符号首次在 Unicode 6.0 中正式标准化时,一次性添加了 722 个表情符号。它们最初在日本手机 (i-mode) 上使用,后来因被纳入 iPhone 的日语键盘而传播到全世界。"emoji"这个词本身就是日语。
总结
表情符号不是图片,而是"字符"。它们以 Unicode 编号的形式在网络上传输,由接收设备渲染出设计。这就是为什么不同平台上的设计不同,以及为什么在旧系统上会显示为 □。下次发送表情符号时,不妨想象一下它背后的数字正在经过 DNS 解析、TCP 连接和 TLS 加密到达对方。
相关术语
常见问题
表情符号是以图片形式发送的吗?
不是。表情符号以Unicode编号(如😀=128512)发送,接收方设备绘制该编号对应的设计。所以各平台的设计不同。
为什么iPhone和Android的表情符号设计不同?
Unicode只定义编号和名称,设计由各平台自行决定。Apple、Google、Samsung各自独立设计。
表情符号显示为□是为什么?
虽然收到了新表情符号的编号,但设备的操作系统或字体中不包含该设计。更新操作系统即可解决。