ASCII字符集,Unicode字符集和UTF-8编码格式最全笔记

如下部份内容转载自(包括部分图片):http://www.javashuo.com/article/p-ugiiqvbe-gz.html(为了方便查阅和记忆,万分感谢JRSmithhtml

做者:JRSmith浏览器

来源:博客园服务器

 计算机只能处理数字,若是要处理文本,就必须先把文本转换为数字才能处理。网络

字符编码:字符编码(英语:Character encoding)也称字集码,是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、天然数序列、8位组或者电脉冲),以便文本计算机中存储和经过通讯网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特二进制来表示这个整数。一般会额外使用一个扩充的比特,以便于以1个字节的方式存储。性能

编码历史:在显示器上看见的文字、图片等信息在电脑里面其实并非咱们看见的样子,即便你知道全部信息都存储在硬盘里,把它拆开也看不见里面有任何东西,只有些盘片。假设,你用显微镜把盘片放大,会看见盘片表面凹凸不平,凸起的地方被磁化,凹的地方是没有被磁化;凸起的地方表明数字1,凹的地方表明数字0。硬盘只能用0和1来表示全部文字、图片等信息。那么字母”A”在硬盘上是如何存储的呢?可能小张计算机存储字母”A”是1100001,而小王存储字母”A”是11000010,这样双方交换信息时就会误解。好比小张把1100001发送给小王,小王并不认为1100001是字母”A”,可能认为这是字母”X”,因而小王在用记事本访问存储在硬盘上的1100001时,在屏幕上显示的就是字母”X”。也就是说,小张和小王使用了不一样的编码表。小张用的编码表是ASCII,ASCII编码表把26个字母都一一的对应到2进制1和0上;小王用的编码表多是EBCDIC,只不过EBCDIC编码与ASCII编码中的字母和01的对应关系不一样。通常地说,开放的操做系统(LINUX 、WINDOWS等)采用ASCII 编码,而大型主机系统(MVS 、OS/390等)采用EBCDIC 编码。在发送数据给对方前,须要事先告知对方本身所使用的编码,或者经过转码,使不一样编码方案的两个系统可沟通自如。编码

(提取自百度百科,重要的内容复制下来以便本身查阅和你们理解)spa

ASCII码:操作系统

1.记住 a为97,A 为 65 , 0 的 ASCII 码为 48 ,知道相应的大小写字母之间差 32 ,就能够推算出其他字母,数字的 ASCII 码。3d

2.基本的 ASCII 字符集共有 128 个字符,其中有 96 个可打印字符,包括经常使用的字母、数字、标点符号等,另外还有 32 个控制字符。标准 ASCII 码使用 7 个二进位对字符进行编码。code

3.这128个符号(包括32个不能打印出来的控制符号),只占用了一个字节的后面7位,最前面的1位统一规定为0

 

Unicode码:

1.ASCII编码是1个字节,而Unicode编码一般是2个字节。

2.ASCII码中,小写字母a对应得十进制是97,对应得二进制是0110 0001,若把ASCII编码的 a用Unicode编码表示,只须要在前面加0便可。 a的Unicode编码是0000 0000 0110 0001

3.unicode和ASCII都是字符集而UTF-8,UTF-16等是一种存储方式,在存储和传输上节约空间、提升性能的一种编码格式而ASCII码是字符集,又是编码格式

4.在计算机内存中,统一使用Unicode编码。

UTF-8:

1.UTF是 Unicode TransferFormat,在Unicode编码后,再作转换成为某一种格式。

2.为了提升Unicode的编码效率,因而就出现了UTF-8编码(UTF-8是编码格式)。UTF-8能够根据不一样的符号自动选择编码的长短。好比英文字母能够只用1个字节就够了。

3. utf8是解决网络传输时代替unicode的方案,而unicode是内存中统一使用的编码。

4.在计算机内存中,统一使用Unicode编码,当须要保存到硬盘或进行网络传输时,就转换为UTF-8编码格式。

5.UTF-8的编码是这样得出来的,以”汉”这个字为例:

“汉”字的Unicode编码是U+00006C49,而后把U+00006C49经过UTF-8编码器进行编码,最后输出的UTF-8编码是E6B189。

6.再次强调UTF-8是一种编码格式UTF-8编码把一个Unicode字符根据不一样的数字大小编码成1-6个字节,经常使用的英文字母被编码成1个字节,汉字一般是3个字节,只有很生僻的字符才会被编码成4-6个字节。(若是你要传输的文本包含大量英文字符,用UTF-8编码就能节省空间)

7.用记事本编辑的时候,从文件读取的UTF-8字符被转换为Unicode字符到内存里,编辑完成后,保存的时候再把Unicode转换为UTF-8保存到硬盘中(因此说存储和网络传输最好使用UTF-8编码格式,能够节省空间和提升传输速率):

浏览网页的时候,服务器会把动态生成的Unicode内容转换为UTF-8再传输到浏览器:

因此不少网页的源码上会有相似<meta charset="UTF-8" />的信息,表示该网页正是用的UTF-8编码。UTF-8在互联网上是使用最广的一种Unicode的实现方式。除此以外还有UTF-16,UTF-32等编码格式,不过他们用的不多,UTF-8是Unicode的实现方式之一。