欢迎来到字符编码的世界!🚀

你有没想过,电脑是如何知道屏幕上那一串“1”和“0”代表字母“A”,或者为什么你发送消息时会出现表情符号?在本章中,我们将探索电脑用来表示文字的“秘密代码”。这是你 H2 Computing 旅程中“数据与信息”单元的核心基础。

读完这些笔记后,你将能理解 ASCIIUnicode 之间的差异,并学会如何在 Python 程序中运用它们!


1. 核心概念:电脑如何“读取”信息

电脑本质上是大型计算器,它们只懂二进制(0 和 1)。它们无法直接“看到”字母或符号。为了解决这个问题,我们使用字符集 (Character Set)——这基本上是一个巨大的对照表(就像解码密码表一样),为每一个字符分配一个独特的数值。

比喻:想象一间图书馆,每本书都有一个特定的编号。你不必开口说要借《了不起的盖茨比》,只要说要借“第 402 号书”就可以了。字符编码就是一套系统,它告诉电脑“65”代表“A”。


2. ASCII:编码的基石

ASCII 的全名是 American Standard Code for Information Interchange(美国信息交换标准代码)。它是最早被广泛使用的编码系统之一。

关于 ASCII 的重点:

  • 它使用 7 比特 (bits) 来表示每个字符。
  • 使用 7 比特,它可以表示 \(2^7 = 128\) 个不同的字符。
  • 这 128 个字符包括:
    • 大写字母 (A-Z)
    • 小写字母 (a-z)
    • 数字 (0-9)
    • 标点符号 (., !, ?, 等)
    • 控制字符(如“Enter”或“Backspace”)

在程序中使用 ASCII (课程纲要 3.2.2)

在 Python 中,你可以通过两个内置函数轻松地在字符与其 ASCII (整数) 值之间进行转换。如果一开始觉得有点难,别担心——你只需要记住这两个工具:

1. ord():将字符转换为其整数代码。

示例: ord('A') 会返回 65

2. chr():将整数代码转换回字符

示例: chr(65) 会返回 'A'

快速对照表:

字符: 'A' → ASCII: 65
字符: 'B' → ASCII: 66
字符: 'a' → ASCII: 97
字符: '0' → ASCII: 48

常见错误提醒:请记住,字符 '0'(文本)与数字 0 并不一样。在 ASCII 中,字符 '0' 是由数字 48 表示的!

重点总结:

ASCII 是一个简单的 7 比特系统(通常以 8 比特/1 字节存储),涵盖了基本的英文字符,但受限于只能表示 128 个字符。


3. Unicode:通用标准

随着电脑普及全球,128 个字符已远远不足。我们要如何表示中文、阿拉伯文、数学符号,或是“喜极而泣”的表情符号 😂 呢?

Unicode 的出现就是为了解决这个问题。它是一个规模更大的字符集,目标是涵盖全球所有语言的字符。

Unicode 的应用示例 (课程纲要 3.2.1):

  • 现代网页浏览器:你访问的几乎每个网站都使用 Unicode(特别是一种称为 UTF-8 的格式),以便文字能在任何语言环境下正确显示。
  • 操作系统:Windows、macOS 和 Linux 使用 Unicode 来处理文件名和系统文字。
  • 社交媒体与通讯软件:当你在 WhatsApp 或 Telegram 发送表情符号时,你就是在用 Unicode。每个表情符号都有特定的 Unicode “码位 (code point)”。
  • 国际化软件:任何允许切换语言(例如从英文切换到日文)的应用程序,都依赖 Unicode 来无缝切换字符集。

你知道吗?

Unicode 的前 128 个字符与 ASCII 完全相同。这使得 Unicode 具备“向下兼容性”,这代表旧的 ASCII 文件可以被现代的 Unicode 系统毫无问题地读取!

重点总结:

Unicode 是 ASCII 的“大哥”。它使用更多的比特(通常为 16 或 32 比特)来表示数以百万计的可能字符,使其成为现代全球化数字世界的标准。


4. 总结与比较

ASCII:

  • 大小: 7 比特 (128 个字符)。
  • 范围: 仅限英文。
  • 用途: 简单的旧系统、基础程序设计练习。

Unicode:

  • 大小: 可变(通常为 16 至 32 比特)。
  • 范围: 全球(所有语言 + 表情符号)。
  • 用途: 互联网、现代应用程序、全球通讯。

快速检测:自我测试!

1. 如果 ord('C') 是 67,那么 chr(68) 是什么?
(答案:'D')

2. 为什么我们不能使用 ASCII 来编写泰米尔语或中文文件?
(答案:ASCII 只有 128 个位置,且大部分已被英文字母和符号占用。它没有“空间”容纳其他语言。)

3. 请举出一个日常生活中使用 Unicode 的真实示例。
(答案:在消息中使用表情符号,或浏览外语网站。)

考试小撇步:如果考题问到为什么 Unicode 比 ASCII 更受欢迎,请务必提到“国际化 (Internationalisation)”“支持更广泛的字符/语言范围”