unicode字符编码
字符集,用一张或多张由多行多列的二维表构成。
二维表中行与列相交的点,称为code point,码点。一个码点值(即码点编号)就是对应字符的编号,索引码点值有时
可以直接称为字符编号。【那么字符编号最大是多少?】
字符集中所有码点数量的总和,称为编号空间。
Unicode标准,将字符按照类别划分到0~16这17个平面,每个平面有2**16=65526个码点,因此目前编号空间为
17*65535=1114112
【由于如果用固定长度的字节表示编号值,会造成一定程序的浪费,
因此用来表示码点值的字节序列长度,随码值变化而变化,也就是变长编码】
码点值(即字符编号)的具体实现方式,称为字符编码方式Character Encoding Form,
Unicdoe字符编号有三种UTF编码方式,
也就是说,go语言中的rune类型(int32),表示的code point,也就是码点值。
但一个码点值,编码表示时,可以是一个或多个字节。
《阮一峰 字符编码》
需要注意的是,Unicode 只是一个符号集,它只规定了符号的二进制代码,却没有规定这个二进制代码应该如何存储。
互联网的普及,强烈要求出现一种统一的编码方式。
UTF-8 就是在互联网上使用最广的一种 Unicode 的实现方式。其他实现方式还包括 UTF-16(字符用两个字节或四个字节表示)和 UTF-32(字符用四个字节表示),不过在互联网上基本不用。
重复一遍,这里的关系是,UTF-8 是 Unicode 的实现方式之一。
UTF-8变长编码,它可以使用1~4个字节表示一个符号,根据不同的符号而变化字节长度。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术