文件的编码
编码的发展简史:
美国最早定制了适合美国国内使用的字符编码规则,即ASCII码(American Standard Code forInformation Interchange,美国信息互换标准代码),后面欧洲各国又对其加以扩展以方便使用。
特点:所有字母符号都用一个字节(八位)表示, 1到127号连续的字节状态表示所有的空格、标点符号、数字、大小写字母。128到255号字节用来表示”扩展字符集”
中国人民通过对ASCII 编码的中文扩充改造(不够用),产生了** GB2312** 编码,
可以表示6000多个常用汉字。
汉字实在是太多了(还是不够用),包括繁体和各种字符,于是产生了 GBK 编码,
它包括了 GB2312 中的编码,同时扩充了很多。
**特点:
GB2312 :
GB2312 是对 ASCII 的中文扩展,个小于127的字符的意义与原来相同,但两个大于127的字符连在一起时,就表示一个汉字,前面的一个字节(称之为高字节)从0xA1用到 0xF7,后面一个字节(低字节)从0xA1到0xFE。
GBK:
不要求低字节一定是127号之后的内码,只要第一个字节是大于127就固定表示这是一个汉字的开始
**
中国是个多民族国家,各个民族几乎都有自己独立的语言系统,
为了表示那些字符,继续把 GBK 编码扩充为 GB18030 编码。
仿照中国,创造自己的语言编码,由此产生了 GB2312, BIG5, JIS
等各自的编码标准。这些使用 2 个字节来代表一个字符的各种汉字延伸编码
方式,称为** ANSI **编码。如果你不安装相应的编码,就无法解释相应编码想
表达的内容。
后来ISO 的组织创造了一种编码 UNICODE ,这种编码非常大,大到可以容纳世界上任何一个文字和标志。所以只要电脑上有UNICODE 这种编码系统,无论是全球哪种文字,只需要保存文件的时候,保存成
UNICODE 编码就可以被其他电脑正常解释。
UNICODE 在网络传输中,出现了两个标准 UTF-8 和 UTF-16,分别每次传输 8个位和 16个位。
因为 UTF-8 等编码体积比较大,占电脑空间比较多,如果面向的使用人群绝大部分都
是中国人,用 GBK 等编码也可以。但是目前的电脑来看,硬盘都是白菜价,电脑性能也已经
足够无视这点性能的消耗了。所以推荐所有的网页使用统一编码:UTF-8。
注意:
1. 从ASCII、 GB2312、GBK到GB18030,这些编码方法是向下兼容的,即同一个字符在这些方案中总是有相同的编码,后面的标准支持更多的字符。在这些编码 中,英文和中文可以统一地处理。区分中文编码的方法是高字节的最高位不为0。按照程序员的称呼,GB2312、GBK到GB18030都属于双字节字符集 (DBCS)。
**2. Unicode只与ASCII兼容(更准确地说,是与ISO-8859-1兼容),与GB码不兼容。例如“汉”字的Unicode编码是6C49,而GB码是BABA。
Unicode规定了怎么用2字节(也有4字节)表示各种文字。而怎样传输这些编码,是由UTF(Unicode TransformationFormat)规范规定的,
常见的UTF规范包括UTF-8、UTF-7、UTF-16**
总结:
ASCII码占一个字节;
GB2312和GBK码英文字符占一个字节,中文字符占2个字节;
UTF-8编码下字符所占字节数从1到6个不等,英文字符占一个字节,中文字符通常占3个字节。