-
Notifications
You must be signed in to change notification settings - Fork 0
encode_0
wzs edited this page Aug 27, 2018
·
1 revision
人输入信息的方式有多种, 比如说 语音, 视频, 文字等等, 但是计算机只认识二进制, 那么问题就来了, 如何翻译给计算机呢?
以 文字 举例, 用户输入可以分为以下几个阶段:
- 输入
- 汉字键盘码
- 汉字交换码
- 汉字内部码
- 汉字地址码
- 汉字字形码
- 显示在屏幕
编码/解码: 信息从一种形式或格式转换为另一种形式的过程
- 一种比如说是鼠标的点击, 对应的是操作系统的键值
- 键盘输入转换为ascii码. 过程如下:
- 用户输入
- 输入码/汉字输入码(使用五笔, 拼音等 编码规则)
- 键盘
- 键盘扫描码
- BIOS键盘驱动程序
- 操作系统
- 程序消息
交换码 , 就是我们所说的 编码集+字符集
- 举例: GB2312全称《信息交换用汉字编码字符集·基本集》
- 交换码作用: 实现将输入的文字转换为 内部码 : 计算机识别的二进制格式
- 字符集: 一个文字系统所支持的所有抽象字符的集合.
- 编码集: 将字符集转换为计算机可接受的形式的信息
- 举个栗子
- unicode是字符集
- ascii既是编码集, 也是字符集
- utf-8则是编码集
汉字地址码 和 字形码 涉及到汉字的显示问题, 比如点阵显示, 矢量显示, 实现后就是我们看到的各种字体了.
粗略讲下:
- 点阵表示字型: 汉字字型码指的是这个汉字字型点阵的代码. 根据输出汉字的要求不同, 点阵的多少也不同
- 简易型汉字为
16*16点阵 - 提高型汉字为
24*24点阵,32*32点阵,48*48点阵等等
- 简易型汉字为
- 矢量表示字型: 存储描述汉字字型的轮廓特征, 当要输出汉字时, 通过计算机的计算, 由汉字字型描述生成所需大小和形状的汉字点阵.
- 矢量化字型描述与最终文字显示的大小, 分辨率无关, 因此可以产生高质量的汉字输出
- Windows中使用的TrueType技术就是汉字的矢量表示方式.
- 其他: 比如apple的边缘模糊技术,
- 估计是图形学方面的知识. 留待以后感兴趣了再细看.
使用内部码传递信息
- 坑1: 早期网关(硬件)采用7bit位传输, 为了解决这个问题, 诞生了后来的base64
- 有兴趣的同学可以了解下 base64
- 有相关兴趣的同学可以研究下 中文信息处理 这门课, 以及可以自己动手做下demo
- 提升理解的问题
- 用户A输入信息到用户B显示信息的过程
- 字符集和编码集区别
- Why 1B==8bit
- UTF-8 GBK UTF8 GB2312 之间的区别和关系
- base64相关
- WHY IS A BYTE 8 BITS? OR IS IT?