字符编码

2017-4-12 hubo 其它

   

    计算机只能处理二进制数字,而且计算机是美国人发明的,所以最早期只有英文26个字母的大小写、数字、和一些符号共计127个字符被编码到计算机中,这个编码表被称为ASCII编码表,比如大写字母A的编码是65,小写z的编码是122。



    因为计算机只能处理数字,所以计算机要处理文本的话,就必须先把文本转换成数字才能处理。计算机在最早设计时,采用8比特作为一个字节,所以一个字节表示的最大整数是255,(11111111 (二)= 255(十)),如果要表示更大的数,就需要更多的字节。


     看得出来,要处理中文,显然一个字节是不够的,至少需要2个字节,而且还不能和ACSII表冲突,所以中国制定了GB2312编码,把中文编了进去。但是世界上的语言是很多的,日本,韩文等等,各国都有各国的标准,所以在多语言的文本中,就不可避免的出现了乱码。


     因此,Unicode诞生。它把所有的语言都统一到一套编码中,这样就不会出现乱码问题了。Unicode也在不断的发展中,现在操作系统和大多数编程语言都支持。


    ASCII编码是一个字节,Unicode通常两个字节。虽然此时乱码问题解决了,但是当我们使用大量英文字符时,用Unicode编码比ASCII编码需要一倍的存储空间,就不太划算了。


     所以为了节约空间,出现了把Unicode转成UTF-8编码,UTF-8编码把一个Unicode字符根据不同的数字大小编码成1-6个字节,常用的英文字母被编码成1个字节,汉字通常是3个字节,只有很生僻的字符才会被编码成4-6个字节。如果你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间:


     



    总结一下现在计算机系统通用的字符编码工作方式:在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者传输时,转成UTF-8编码。编辑文件时,从文件中读取的UTF-8转成Unicode字符到内存中,编辑好之后再转成UTF-8保存。浏览网页时候,服务器会把动态生成的Unicode内容转成UTF-8再传输到浏览器。

网站备案号:京ICP备11043289号-1 北京市公安局网络备案 海1101084571
版权所有 北京育灵童科技发展有限公司 Copyright © 2002-2024 www.elight.cn, All Rights Reserved