计算机只能使用 0 与 1 来组合 储存信息
以8位的0与1的不同组合 组成2^8 =256种不同的状态
在传输时 会将字符按一个编码规则 编译成有规律的二进制格式
如 在传输book 这个单词时 会将book以ascii编码 编译成 01100010 01101111 01101111 01001011 传输
在接收端 接收到这些字节 将这些字节以ascii编码表 还原为 book 这个单词
ASCII
使用0开头的 127 种状态 还剩128种状态
对A-Z 1-0 等字符
指定了他的状态
以此来储存不同的信息
如 空格为32
指令:储存 32 储存第32种状态 32—找编码表 储存010101。。。
输出: 010101 找ASCII编码表 找到对应的符号 输出。。。
vs编辑器下可以选择代码页的保存方案。英文字符多会以ASCII编码方式储存。(其他双字节编码低于128位会不用)
L"Hello!" ----->告知编辑器以双字节储存。
gb2312
既然一个字节的 256 种字符不能表示中文,那么,我们就使用两个字节来表示一个中文,在每个字符的 256 种可能中,低于 128 的为了与 ASCII 保持兼容,我们不使用,借鉴 ISO8859的设计方案,只使用从 160 以后的 96 个数字,两个字节分成高位和低位,高位的取值范围从 176-247 共72个,低位从 161 – 254共94这样,两个字节就有 72 * 94 = 6768
unicode
简称 UCS :没有定义储存与传输
兼容世界所有字符 00000000.00000000
256*256 =65536种状态 UCS-2
256*256*256*256=…..种状态 UCS-4 :兼容外星人的字符集
unicodde 16 ---每个字用双字节存
unicode 32 ---每个字有4字节存
UTF-8 变成编码
以可变单字符长度
为了减少储存英文的大小 为了单字节储存
其中 UTF-8 编码得到了广泛的应用,UTF-8 的全名是UCS Transformation Format 8, 即 UCS 编码的8位传输格式,就是使用单字节的方式对 UCS 进行编码,使 Unicode 编码能够在单字节的设备上正常进行处理。
UTF-8 编码是变长的编码,对不同的 Unicode 可能编成不同的长度
突破障碍 - Unicode 与 本地编码的转换
UTF-8 编码解决了字符的编码问题,又可以在现有的设备上通行,因此,得到了广泛的使用
latin1
ISO-8859-1=latin1
latin1 特性 单字节编码 向下兼容ascii 0x00-0xff-0x00-0x7f
latin1使用了单字节内的所有空间
可以用latin1 储存与传输 其他编码字节流。
mysql用的这个特性
escape -->latin1