291 编码表
字符流 = 字节流 + 编码表
【基础知识普及】
二进制数
以win10的计算器为例,把标准模式转换为程序员模式。
在程序员模式下,输入数字,得到如下结果
输入2 | 输入3 | 输入12 | 输入666 | |
HEX | 2 | 3 | C | 29A |
DEC | 2 | 3 | 12 | 666 |
OCT | 2 | 3 | 14 | 1232 |
BIN | 0010 | 0011 | 1100 | 0010 1001 1010 |
编码:按指定规则将字符存储到内存中,称为编码。
解码:按指定规则将内存中的数据解析显示出来,称为解码。
·
编码解码的规则必须一致,否则就会乱码。
编码解码的规则必须一致,否则就会乱码。
编码解码的规则必须一致,否则就会乱码。
·
编码规则,就是转换二进制数、人类语言的规则。
字符集,charset,一个系统支持的字符集合,包括文字(英文字母or汉字or拉丁字母aso)、标点、数字等。
常见的字符集:ASCII(读ask)、GBXXX、Unicode等。
ASCII | (American Standard Code for Information Interchange): 美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言。它是最通用的信息交换标准,并等同于国际标准ISO/IEC 646。ASCII第一次以规范标准的类型发表是在1967年,最后一次更新则是在1986年,到目前为止共定义了128个字符 |
GBXXX | GB 2312简体中文码表。一个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时就表示一个汉字,共收录6763个汉字,其中一级汉字3755个,二级汉字3008个、拉丁字母、希腊字母、日文平假名及片假名字母、俄语西里尔字母等。 全角字符。GB 2312把ASCII里的数字、标点、字母重新编了2个字节长的编码,这就是全角字符,ASCII原来的数字、标点等称为半角字符。 对于人名、古汉语等方面出现的罕用字,GB 2312不能处理,这导致了后来GBK及GB 18030汉字字符集的出现。 |
GBK (重点掌握) | 最常用的中文码表,在GB2312基础上的扩展,使用双字节编码,收录21003个汉字,支持繁体汉字、日文、韩文。 |
GB18030 | 最新的中文码表,收录汉字70244个,采用多字节编码,每个字由1or2or4个字节组成,支持中国少数民族文字、繁体汉字、日文、韩文 |
Unicode | 统一码,也叫万国码、单一码(Unicode)是计算机科学领域里的一项业界标准,包括字符集、编码方案等。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。1990年开始研发,1994年正式发布1.0版本,2021年9月14日发布14.0版本。 |
UTF-8 (重点掌握) | 可以用来表示Unicode标准中任意字符,是电子邮件、网页及其他存储或传送文字的优先编码。 互联网工程工作小组IETF要求所有互联网协议都必须支持UTF-8编码。 使用1-4个字节为每个字符编码。 编码规则如下 - 128个US-ASCII字符,只需要1个字节编码 - 拉丁文等字符,需要2个字节 - 大部分常用字(包括中文),用3个字节 - 其他极少使用的Unicode辅助字符,用4个字节 |