编码,数据的传输

计算机只能使用 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

posted @ 2010-08-13 16:26  晨祷  阅读(232)  评论(0编辑  收藏  举报