什么是编码?
将信息(文字、图像、声音、视频、代码)使用特定的符号组合表示出来的过程。
任何信息载体都是编码,编码是 信息通信 与 信息处理 技术的基础。
编码与信息通信
长亮三下(S),短亮三下(O),长亮三下(S)。这样就表明上海向北京在“求救”。
编码与信息处理
数字电路
计算机的数字电路,只能处理高低电平信号。
二元编码
0、1序列可以用来编码万事万物,就像点画编码字符一样。
将高低电平,想象成0、1序列,那么机器就可以处理0、1序列。
信息处理
机器实际处理的是高低电平,但高低电平理解为0、1序列可表示万物,所以机器能处理万物。
什么是程序?
数据编码---实体建模
万事万物需要合适的结构来组织编码,以便于描述和处理。
算法编码---规则编码
机器没有方向、没有目的,但是人进行信息处理是有目的的。所以需要对机器的处理方式和处理流程及处理规则进行编码描述,得以控制机器实现信息处理的最终目标。
字符串编码
将文字转换机器识别及处理的二进制过程。文字编码方案如下:
Ascll:是美国信息交换码
GB2312:中文国标编码
Unicede(UTF-32,UTF-16,UTF-8):是一个编码标准,是一个字符集,规定字符和码点的映射。
不需要自己编码,直接从Encoding类获取编码。
技术文档:官网依赖包_System.Text.Encoding.CodePages
C#编码
将信息用特定代码来表示的过程。
C#解码
用特定代码将信息来还原的过程。
C#乱码
保存文件和打开文件编码不一致,导致显示内容混乱。
案例一
案例二
Unicede详解
UTF-32
使用4个字节存储编码,直接使用Unicode码点(每个字符映射到一个唯一的数字编码),32位状态42亿,实际常用字符只有几万。
缺点:每个字符使用4个字节,太浪费空间。
UTF-16
使用2-4字节来存储编码,C#字符串是使用UTF16编码。
UTF-8
使用1-4字节存储编码。