unicode编码方案是什么

题图来自Unsplash,基于CC0协议
导读
Unicode编码方案定义:它是一种字符编码标准方案,设计目标是支持世界上所有语言的字符,通过为不同的字符赋予唯一的数字编码(Unicode码点),使文本能够在各种数字设备、平台和应用程序间可靠地流转、显示和交换。
Unicode与ASCII关系:ASCII是早期的标准,仅能表示英文字符,共128个。Unicode诞生后,ASCII的0-127范围被完全兼容,作为Unicode的一个子集。Unicode极大地扩展字符集,支持全球语言和符号。例如,“A”的ASCII编码是65 (十六进制41),其Unicode编码同样是U+0041。
Unicode编码原理:Unicode的规定只是一个字符与代码点(如U+0041)的映射关系,并没有规定具体存储方式。实际存储时,需要按照一定的字节组织规则(编码方案)将其转换成计算机能识别的二进制形式。这个过程通常包括两个环节:
- 将字符映射到对应的数字编码点(Code Point,形如U+XXXX)。
- 根据不同的编码方案(如UTF-8、UTF-16、UTF-32),将代码点这个大数字拆分成一个或多个字节(Byte)进行存储。
当下主流且兼容性最好的几种Unicode编码方案分别是:
- UTF-8: 使用1到4个字节不等长度来编码一个字符。英文字符(ASCII字符)用一个字节表示,非常高效。非英语字符用多个字节,能够实现一定程度的兼容ASCII。几乎所有现代系统和Web都默认使用UTF-8。
- UTF-16:通常使用两个字节(一个码位,16位)来表示一个字符,但处理超过该范围的字符(码点大于U+FFFF的)时,UTF-16会采用代理对(surrogate pair)机制,即用两个16位码位组合来表示一个字符。其优点是固定的有效载荷大小(除了一些特殊情况,如代理码点),缺点是不支持直接按单个码位解释字节内容且占比较大。
- UTF-32:使用固定4个字节来存储一个字符,每个字符占用一个码位(Code Unit)。其优点是编码非常直接、速度快,无需处理字节序转换(因为每个字符就是独立的一个字,不存在拆开组合),缺点就是存储空间消耗是所有主流编码方案中最高的。
Unicode标准版本历史:Unicode由一个非营利组织负责维护和更新,自1991年发布1.0版本以来,经历了多次迭代。早期版本可能只支持部分语言字符,后来逐步增加了大量符号(包括emoji表情)、增强改进、修正错误。例如早期主要版本有:1.0(1991)、2.0(1996)、3.0(2000)、4.0(2005)、5.0(2009)、6.0(2017)、10.0(2018)等。每个版本都旨在更好地覆盖全球语言、字符,并适应新的技术环境和需求。而目前使用的大部分Unicode,一般指从后期某个稳定版本开始的版本,支持数万个字符点。Unicode标准发展至今,成为一个极大的成功,促进了信息的全球化流通和整合。
© 版权声明
本文由盾科技原创,版权归 盾科技所有,未经允许禁止任何形式的转载。转载请联系candieraddenipc92@gmail.com