字符编码(二)

转字刨根究底字符编码

Unicode

Unicode字符集的目标是涵盖目前人类使用的所有字符,并为每个字符分配唯一
的字符编号(码点值),一一对应于编号空间(码点空间)的里的码点。

Unicode字符集的字符编码方式一开始规定用两个字节(16位)来统一表示所有字符,对于ASCII字符,保持其编码不变。只是在UTF-16字符编码方式中将其长度由原来的8位扩展为16为。

由于ASCII字符只需要用到UTF-16中的后7位,所以前9位都是0。

Unicode字符集不同于ASCII这样不能再增加字符的封闭字符集,而是一个开放的字符集,在不断的发展(例如emoji不断的被添加到字符集中),理论上支持的字符数量时没有上限的,未来还可以再扩展。

在表示Unicode编号的十六进制数的前面加上“U+”
U+0041表示大写英文字母A
U+4E25表示汉字“严”

Unicode字符集将所有字符按照使用频率分为17个平面,每个平面上的编号空间有2^16=65536个码点。

BMP

Basic Multilingual Plane基本多语言平面,基本涵盖了当今世界正在使用中的常用字符。

BMP以外其他的增补平面,要么用来表示一些非常特殊的字符(比如不常用的象形文字、远古时期的文字等),且多半只有专家在历史和科学领域才会用到它们,要么被留作扩展使用。目前Unicode字符集中尚有大量编号空间尚未被使用。

Private Use Zone

专用区(OxE000~OxF8FF)(57344~63743),工6400个码点,被保留为专用,因而永远不会被分配给任何字符。

Surrogate Zone

代理区(OxD800~OxDFFF)(55296~57343)共2048个码点,目的使用基本平面BMP中的两个码点“代理”表示BMP以外的其他增补平面的字符。

你可能感兴趣的:(随笔)