学习路线指引(点击解锁) | 知识定位 | 人群定位 |
---|---|---|
🧡 Python实战微信订餐小程序 🧡 | 进阶级 | 本课程是python flask+微信小程序的完美结合,从项目搭建到腾讯云部署上线,打造一个全栈订餐系统。 |
💛Python量化交易实战💛 | 入门级 | 手把手带你打造一个易扩展、更安全、效率更高的量化交易系统 |
人类交流使用 A
、B
、C
、中
等字符,但计算机只认识 0
和 1
。因此,就需要将人类的字符,转换成计算机认识的二进制编码。这个过程就是字符编码。
最简单、常用的字符编码就是 ASCII(American Standard Code for Information Interchange,美国信息交换标准代码),它将美国人最常用的 26 个英文字符的大小写和常用的标点符号,编码成 0
到 127
的数字。例如 A
映射成 65
(0x41
),这样计算机中就可以用 0100 0001
这组二进制数据,来表示字母 A
了。
ASCII 编码的字符可以分成两类:
0
- 31
和 127
(0x00
- 0x1F
和 0x7F
)32
- 126
(0x20
- 0x7E
)具体字符表可以参考:ASCII - 维基百科,自由的百科全书。
ASCII 只编码了美国常用的 128 个字符。显然不足以满足世界上这么多国家、这么多语言的字符使用。于是各个国家和地区,就都开始对自己需要的字符设计其他编码方案。例如,中国有自己的 GB2312,不够用了之后又扩展了 GBK,还是不够用,又有了 GB18030。欧洲有一系列的 ISO-8859 编码。这样各国人民就都可以在计算机上处理自己的语言文字了。
但每种编码方案,都只考虑了自己用到的字符,没办法跨服交流。如果一篇文档里,同时使用了多种语言的字符,总不能分别指定哪个字符使用了那种编码方式。
如果能统一给世界上的所有字符分配编码,就可以解决跨服交流的问题了,Unicode 就是来干这个事情的。
Unicode 统一编码了世界上大部分的字符,例如将 A
编码成 0x00A1
,将 中
编码成 0x4E2D
,将 α
编码成 0x03B1
。这样,中国人、美国人、欧洲人,就可以使用同一种编码方式交流了。
一个 Unicode 字符可以使用 U+
和 4 到 6 个十六进制数字来表示。例如 U+0041
表示字符 A
、U+4E2D
表示字符 中
,U+03B1
表示字符 α
。
Unicode 最初编码的范围是 0x0000
到 0xFFFF
,也就是两个字节,最多 65536 (2^16
) 个字符。但随着编码的字符越来越多,两个字节的编码空间已经不够用,因此又引入了 16 个辅助平面,每