📜  ASCII 与 UNICODE(1)

📅  最后修改于: 2023-12-03 14:59:23.427000             🧑  作者: Mango

ASCII 与 Unicode

ASCII 是一种字符编码系统,用于将英文字符和一些常用符号转换为二进制形式表示,在计算机内部存储和传输。ASCII 编码最初只使用了 7 位二进制,所以只能表示 128 种字符。

Unicode 是一个更加全面的字符编码系统,它支持全球范围内的字符、符号和文字,包括非英语语言和特殊符号。Unicode 的编码范围更广泛,可以支持超过 1 百万种字符。

ASCII 编码

ASCII 编码使用 7 位二进制表示字符,最大可以表示 128 种字符,包括:

  • 字母(大小写)
  • 数字
  • 标点符号
  • 控制字符

在计算机内部,这些字符表示为二进制数值,可以用十进制或十六进制表示。例如,“A” 的 ASCII 值是 65,二进制表示为 01000001,十六进制表示为 0x41

ASCII 编码主要被用于计算机的早期阶段,由于只支持有限的字符集,无法满足国际化的需求。

Unicode 编码

Unicode 是一个更为全面的编码系统,可以表示超过 1 百万种字符,包括全球所有的文字、符号和表情等。

Unicode 将字符映射到数字上,每个字符都有一个唯一的数值表示,称为“码位”。Unicode 使用 16 位二进制(通常表示为 “code point”)表示一个字符,最大可以表示 65535 种字符。

由于 Unicode 表示 16 位编码,所以有一些字符需要使用两个 code point 来表示,这被称为“UTF-16 编码”。UTF-8 则是 Unicode 的一种压缩编码方式,可以使用 1-4 个字节表示 Unicode 字符,是目前最为广泛使用的编码方式之一。

在 Python 3 中,字符串默认使用 Unicode 编码:

>>> s = 'Hello, 你好!'
>>> len(s)  # len 函数返回字符串的长度
10
总结

ASCII 编码在计算机早期广泛使用,但无法满足多语言、国际化的需求。Unicode 是一个更全面的字符编码系统,可以表示超过 1 百万种字符。在 Python 3 中,字符串默认使用 Unicode 编码。