一、什么是编码
编码是指信息从一种形式或格式转换为另一种形式或格式的过程。
在计算机中,编码,简而言之,就是将人能够读懂的信息(通常称为明文)转换为计算机能够读懂的信息。众所周知,计算机能够读懂的是高低电平,也就是二进制位(0,1组合)。
而解码,就是指将计算机的能够读懂的信息转换为人能够读懂的信息。
二、编码种类
- ASCII 占1个字节,只支持英文GB2312 占2个字节,支持6700+汉字
- GB2312 占2个字节,支持6700+汉字
- GBK GB2312的升级版,支持21000+汉字
- Shift-JIS 日本字符
- ks_c_5601-1987 韩国编码
- TIS-620 泰国编码
三、 Unicode的出现和演变
因为每个国家都有自己的一套的字符编码,当所制作的软件出到国外,软件无法正常显示,正是如此Unicode应运而生,它包含了全球的全部字符,称为万国码
Unicode主要起了两个作用:
-
- 支持全球的语言,统一编码。
- unicode包含了全球所有国家编码的映射关系
但是Unicode对于使用ACSII编码的软件不大友好,因为在ACSII编码中,一个英文字符只需要一个字节,而Unicode中需要两个字节才可以表示完,这样大大加大了在网络传输和储存的成本。
为了解决这个问题的出现,1992年出现了UTF-8(8-bit Unicode Transformation Format),节省网络传输和存储等节省空间
- UTF-8: 使用1、2、3、4个字节表示所有字符;优先使用1个字符、无法满足则使增加一个字节,最多4个字节。英文占1个字节、欧洲语系占2个、东亚占3个,其它及特殊字符占4个。
- UTF-16: 使用2、4个字节表示所有字符;优先使用2个字节,否则使用4个字节表示。
- UTF-32: 使用4个字节表示所有字符。
四、编码的转换
在出现Unicode和utf-8之前,每个国家都用着自己国家的编码,当Unicode和 utf-8出现后,我们并不能马上改变我们的代码,因为要改变的东西太多了,然后要让我们的软件被国外的使用,我们只有两条路可以走
- 让国外的每台电脑装上我们国家的gbk的编码
- 让我们的软件以utf-8编码
显然,第一条路不大好走,而第二种比较好实现。但是第二种只能针对新软件来操作,因为过去的软件已经再次以另一种方式操作会花费许多工程。但是我们可以把软件的数据从硬盘读到内存里,然后用Unicode表示,这样就可以解决问题了。
评论前必须登录!
注册