以前经常遇到字符集和编码的字眼,比如ASCII字符集,IOS-8859字符集,Unicode字符集等,utf-8,utf-16,ascii,gbk,ios-8859-1等编码,把我弄的迷迷糊糊,不知道这么多的
字符集和编码有什么不同?为什么有这么多?就只有一个不是很好吗?现在通过查询资料和自己的了解总结如下:
字符集: 说到字符集我们首先要知道字符的概念,字符是文字与符号的总称,包括文字、图形符号、数字符号等,那么字符集也就是字符的集合。字符集通常和一种具体的语言文字对应起
来,该文字中的所有字符或者大部分自否就构成了该文字的字符集。比如中文字符集。
编码:计算机是不能直接处理字符的,计算机要处理字符,就需要将字符和二进制内码对应起来,这种对应关系就是字符编码。制定编码首先要确定字符集,并将字符集内的字符排序,然
后和二进制数字对应起来,然后根据字符集内字符的多少,来确定用几个字节来编码。
有哪些字符集?
ASCII:American Standard Code for Information Interchange,美国信息交换标准码。ASCII字符集由控制字符和图形字符组成。在计算机的存储单元中,一个ASCII码值占一个字节
它是现今最通用的单字节编码系统。
IOS 8859-1:ISO 8859是国际标准化组织及国际电工委员会联合制定的一系列8位字符集的标准。
Unicode:统一码、万国码、单一码。是一种在计算机上使用的字符编码。它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
Unicode有两种方式,是2个字节和4个字节。
编码
UTF-8:8位编码,使用可变长度字节来储存Unicode字符,例如ASCII字母继续使用1字节储存,重音文字、希腊字母等使用2歌字节储存,中文就使用3字节。
UTF-16:16位编码,使用一个或者两个未分配的16位代码单元的序列对Unicode代码点进行编码。
ISO 8859-1:就比较简单了,我们知道ASCII码是从0x00到0x7F,也就是还有1位没有用到,ISO 8859-1就是在空置的0xA0-0xFF的范围内,加入192个字母及符号,
以供使用变音符号的拉丁字母语言使用。所以ISO 8859-1又称Latin-1。
GB2312:采用2个字节。简体字的编码规范,也包括其他的符号、字母、日文假名等,共7445个图形字符,其中汉字占6763个。
GBK:采用了2个字节。GB2312明显收录的汉字不够,于是增加了大量不常用汉字,还加入了几乎所有的Big5中的繁体汉字之后便成了GBK。
其他的编码等以后补充。。。。。。。。。。