Unicode编码是一种字符编码标准,设计目标是为地球上的每一个字符提供一个独一无二的数字标识,即码点(Code Point)。这种编码标准涵盖了世界上几乎所有书写系统的字符,包括拉丁字母、西里尔字母、汉字、日语假名、阿拉伯字母、希伯来字母以及其他古代和现代的书写符号。
Unicode字符集是一个庞大的字符库,包含了超过143000个字符,并且还在不断增长中以适应新的需求。每个字符都有一个固定的码点,通常用U+紧接着四位十六进制数字来表示,例如汉字“经”的Unicode码点是U+7ECF
。
Unicode的实现方式有多种编码形式,最常见的是:
- UTF-8:变长编码,每个字符可由1至4个字节表示,对于ASCII字符(0-127)与ASCII编码完全一致,适合网络传输和存储,广泛应用于网页和文件编码。
- UTF-16:固定宽度或变宽度编码,常用两个字节或四个字节表示一个字符,对BMP(Basic Multilingual Plane,基本多语言平面)内的字符使用两个字节,超出部分使用代理对(surrogate pairs)占用四个字节。
- UTF-32:固定宽度编码,总是用四个字节表示一个字符,确保所有Unicode字符都能直接对应到一个32位的整数值。
在Python 3中,默认的字符串类型即为Unicode字符串,可以直接处理各种Unicode字符而无需显式转换。而在其他语言如C++中,则需要通过特定的方式来指定和操作Unicode字符串,例如在C++中可以使用宽字符常量前缀L
来创建Unicode字符串。