有关编码的基础 知识
1. 位 bit 最小的单元
字节
byte 机器语言的单位 1byte=8bits
1B=1byte
1KB=1024B
1MB=1024KB
1GB=1024MB
字符:是各种文字和符号的总称,包括各个国家的文字,标点符号,图形符号,数字等。
字符集:字符集是多个符号的集合,每个字符集包含的字符个数不同。
字符编码:字符集只是规定了有哪些字符,而最终决定采用哪些字符,每一个字符用多少字节表示等问题,则是由编码来决定的。计算机要准确的处理各种字符集文字,需要进行字符编码,以便计算机能 够识别和存储各种文字。
Unicode的出现
虽然通过使用不同字符集,我们可以在一台机器上查阅不同语言的文档,但是我们仍然
无法解决一个问题:如果一份文档中含有不同国家的不同语言的字符,那么无法在 一份文档中显示
所有字符 。为了解决这个问题,我们需要一个全人类达成共识的巨大的字符集,这就是 Unicode字符集。
Unicode字符集涵盖了目前人类使用的所有字符,并为每个字符进行统一编号,分配唯一的字符码( Code Point)。 Unicode字符集将所有字符按照使用上的频繁度划分为 17个层面( Plane每个层面上有 216=65536个字符码空间。其中第0个层面 BMP,基本涵盖了当今世界用到的所有字符。其他的层面要么是用来表示一
些远古时期的文字,要么是留作扩展。我们平常用到的 Unicode字符,一般都是位于 BMP层
面上的。目前 Unicode字符集中尚有大量字符空间未使用。
对定长的字符编码, 例如ascii, 直接每个byte查ascii表转换为字符即可
但是对unicode来说实际传输或者存储过程中, 如果使用定长双字节, 一是不能表示BMP层之外的字符, 二是对很多字符明明单字节可以表示, 用双字节产生了浪费
如上图所示, 如果一个程序要解析utf-8编码的比特流, 读取首字节后就可以知道当前字符的长度, 并拆出上面x表示的真实unicode代码
上面的110xxxxxx中的110只是标记符, xxxxx部分组合起来才是真实unicode码
标签:编码,Java,字节,字符,unicode,字符集,Unicode From: https://www.cnblogs.com/littlezt/p/17323576.html