关于编码

脑子太不好使了,反复的看还是忘,网上资料在这方面资料虽然很好,但是还是希望根据自己的思路按图索骥,所以又冗余了一下网络资源,见下!(持续添加)

1、ASCII。ASCII是“美国信息交换标准编码”的英文字头缩写(American Standard Code for Information Interchange),可称之为“美标”。美标规定了用从0到127的128个字符来代表信息的规范编码,其中包括33个控制码,一个空格码,和94个形象码。形象码中包括了英文大小写字母,阿拉伯数字,标点符号等。我们平时阅读的英文电脑文本,就是以形象码的方式传递和存储的。美标是国际上大部分大小电脑的通用编码。具体对应关系:http://www.w3schools.com/cn/tags/ref_ascii.asp
然而电脑中的一个字符大都是用一个八位数的二进制数字表示。这样每一字符便可能有256个不同的数值。由于美标只规定了128个编码,剩下的另外128个数码没有规范,各家用法不一。另外美标中的33个控制码,各厂家用法也不尽一致。通常文件中每一个字都是美标形象码或空格码。这类文件称为“美标文本文件”(ASCII Text Files),或略为“文本文件”。

2、UnicodeUnicode其实就是宽字节字符集,它对每个字符都固定使用两个字节即16位表示。

3、ANSI编码。不同的国家和地区制定了不同的标准,由此产生了 GB2312, BIG5, JIS 等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码方式,称为 ANSI 编码。在简体中文系统下,ANSI 编码代表 GB2312 编码,在日文操作系统下,ANSI 编码代表 JIS 编码。 不同 ANSI 编码之间互不兼容,当信息在国际间交流时,无法将属于两种语言的文字,存储在同一段 ANSI 编码的文本中。 当然对于ANSI编码而言,0x00~0x7F之间的字符,依旧是1个字节代表1个字符。这一点是ASNI编码与Unicode编码之间最大也最明显的区别。

3、URL编码在因特网上传送URL,只能采用ASCII字符集。但由于URL常常包含ASCII字符集以外的字符,所以我们必须对URL进行转换。URL编码要做的,就是将URL转换为有效的ASCII字符格式。在进行URL编码时,每一个非安全的ASCII字符都被替换为“%hh”格式,其中hh为两位十六进制数,它对应于该字符在ISO-8859-1字符集里的编码值。URL字符串里不能含有空格,在进行URL编码时,空格全部被替换为加号(+或%20等)。具体对应关系:http://www.w3schools.com/cn/tags/ref_urlencode.asp

4、UTF-8。UTF-8编码的字符可能由1~3个字节组成, 具体数目可以由第一个字节判断出来。(理论上可能更长,但这里假设不超过3个字节)。第一个字节大于224的,它与它之后的2个字节一起组成一个UTF-8字符;第一个字节大于192小于224的,它与它之后的1个字节组成一个UTF-8字符;否则第一个字节本身就是一个英文字符(包括数字和一小部分标点符号)。在UTF-8编码下汉字将转为3个字节,GB编码下汉字转为2个字节。

posted on 2012-02-11 14:54  山上明月  阅读(209)  评论(0编辑  收藏  举报