编码规则
基本概念
中文名称 | 英文名称 | 概念 | 说明 |
---|---|---|---|
比特 | bit | 信息量单位,数据传输大多以比特为单位;二进制数字中的位 | 二进制数的一位包含的信息=1比特;二进制位:0或1 |
字节 | Byte | 数据存储以字节为单位 | 1Byte = 8 bit |
字符 | Character | 字符是各种文字和符号的总称,包括各国家文字、标点符号、图形符号、数字等;即计算机中使用的文字和符号 | 举例:数字、字母、汉字等 |
字符集 | Charset | 是一个系统支持的所有抽象字符的集合 | 举例:GBK/GB2312等 |
字符编码 | Character Encoding | 将符号转换为计算机可以接受的数字系统的数 | 举例:ASCII 字符集中用 65 表示 A |
代码点 | Code Point | 码点/码位:指一个编码表中的某个字符对应的代码值,Unicode编码表中每个字符对应的数值;为每一个「字符」分配一个唯一的 ID | - |
代码单元 | Code Unit | 在UTF-16中的基本多语言级别中,每一个字符用16位表示,通常被称为代码单元 | Java中Character采用UTF-16编码,占两字节,即一个字符,可表示一个汉字 |
- 编码规则:将「码位」转换为字节序列的规则(编码/解码 可以理解为 加密/解密 的过程)
- 字符与字节的关系
- 概念上两者无任务关系
- 不同的编码规则在表示字符时使用不同的长度的字节,在特定的编码规则下,某种类型的字符需要多少字节来表示或存储
- 代码单元:
概述
- 字节:1个字节(Byte)等于8个bit位,每个bit位是0/1两种状态,也就是说一个字节可以表示256个状态,计算机里用字节来作为最基本的存储单位
- 字符:字符,在计算机和电信技术中,一个字符是一个单位的字形、类字形单位或符号的基本信息
- 字符是指计算机中使用的字母、数字、字和符号,包括:1、2、3、A、B、C、~!·#¥%……—*()——+等等。
①ASCII码中,一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值0,最大值255。
②UTF-8编码中,一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。
③Unicode编码中,一个英文等于两个字节,一个中文(含繁体)等于两个字节。
文本符号:英文标点占一个字节,中文标点占两个字节。举例:英文句号“.”占1个字节的大小,中文句号“。”占2个字节的大小。
④UTF-16编码中,一个英文字母字符或一个汉字字符存储都需要2个字节(Unicode扩展区的一些汉字存储需要4个字节)。
⑤UTF-32编码中,世界上任何字符的存储都需要4个字节