字符集和编码方式的区别?
一、字符集和编码方式的区别
字符集:多个字符的集合。例如GB2312是中国国家标准的简体中文字符集,GB2312收录简化汉字(6763个)及一般符号、序号、数字、拉丁字母、日文假名、希腊字母、俄文字母、汉语拼音符号、汉语注音字母,共 7445 个图形字符。
字符编码:把字符集中的字符编码为(映射)指定集合中的某一对象(例如:比特模式、自然数序列、电脉冲),以便文本在计算机中存储和通过通信网络的传递。
字符集和字符编码的关系 :
字符集是书写系统字母与符号的集合,而字符编码则是将字符映射为一特定的字节或字节序列,是一种规则。通常特定的字符集采用特定的编码方式(即一种字符集对应一种字符编码(例如:ASCII、IOS-8859-1、GB2312、GBK,都是即表示了字符集又表示了对应的字符编码,但Unicode不是,它采用现代的模型)),因此基本上可以将两者视为同义词。
单字节
ASCII(American Standard Code for Information Interchange),128个字符,用7位二进制表示(00000000-01111111即0x00-0x7F);
EASCII(Extended ASCII),256个字符,用8位二进制表示(00000000-11111111即0x00-0xFF)。
当计算机传到了欧洲,国际标准化组织在ASCII的基础上进行了扩展,形成了ISO-8859标准,跟EASCII类似,兼容ASCII,在高128个码位上有所区别。但是由于欧洲的语言环境十分复杂,所以根据各地区的语言又形成了很多子标准,ISO-8859-1、ISO-8859-2、ISO-8859-3、……、ISO-8859-16。
双字节
当计算机传到了亚洲,256个码位就不够用了。于是乎继续扩大二维表,单字节改双字节,16位二进制数,65536个码位。在不同国家和地区又出现了很多编码,大陆的GB2312、港台的BIG5、日本的Shift JIS等等。
注意65536个码位这种说法只是理想情况,由于双字节编码可以是变长的,也就是说同一个编码里面有些字符是单字节表示,有些字符是双字节表示。这样做的好处是,一方面可以兼容ASCII,另一方面可以节省存储容量,代价就是会损失一部分码位。
延伸阅读:
二、GBK
GBK(Chinese Internal Code Specification)是GB2312的扩展(gbk编码能够用来同时表示繁体字和简体字),按理说都属于双字节编码,码位是一样的,根本谈不上扩展,但实际上是预留空间在起作用。比如下图为GBK的编码空间,GBK/1、GBK/2是GB2312的区域,GBK/3、GBK/4、GBK/5是GBK的区域,红色是用户自定义区域,白色可能就是由于变长编码损失的区域了。
以上就是关于字符集和编码方式的区别的内容希望对大家有帮助。

相关推荐HOT
更多>>
栈和队列是操作受限线性表,操作限制降低了操作灵活性,为什么要加入这些限制?
一、栈和队列加入操作限制的原因栈和队列是操作受限线性表,所谓”操作受限”是指只能按照某种固定的规律进行插入和删除操作,无法随意地对其中...详情>>
2023-10-11 22:33:31
ASPICE1级和2级到底具体的区别是什么?
一、ASPICE1级和2级到底具体的区别Level 1意思是实施的过程,仅仅是实施了相关的过程,即可以展示一些WP以说明相关的活动已进行并有了相关的输...详情>>
2023-10-11 21:25:45
主席树和可持久化线段树有什么区别?
一、主席树和可持久化线段树主席树和可持久化线段树没有区别。主席树学名为可持久化线段树,可以用来解决线段树存储历史状态的问题。我们在进行...详情>>
2023-10-11 20:19:10
什么是结构化数据非结构化数据半结构化数据?
一、结构化数据、非结构化数据、半结构化数据结构化数据结构化的数据一般是指可以使用关系型数据库表示和存储,可以用二维表来逻辑表达实现的数...详情>>
2023-10-11 19:24:17热门推荐
为什么给定节点个数的二叉树个数为卡特兰数?
沸栈和队列是操作受限线性表,操作限制降低了操作灵活性,为什么要加入这些限制?
热数据结构sqlist和seqlist有什么区别?
热ASPICE1级和2级到底具体的区别是什么?
新数据结构与算法有哪些内容?
主席树和可持久化线段树有什么区别?
链表(linkedlist)这一数据结构具体有哪些实际应用?
什么是结构化数据非结构化数据半结构化数据?
OracleJDK 和 OpenJDK有哪些区别?
linux和windows的区别?
ldo和dcdc的区别?
thymeleaf和jsp的区别是什么?
计算机算法和语言有哪些区别?
JAVA的io流和nio有什么区别?
技术干货






