标签:
首先,我们需要了解,计算机硬件是只会读取二进制文件的,但是,对于这些复杂的10110101101,这些东西所表达的意思,即使是高深的程序猿们,也未必看得懂,就更别说那些不是IT行业的人士了,但是,随着计算机的普及,自然而然地,就有人站出来解决这个人与计算机交流的问题了。第一个登场亮相的就是ASCII这个东西,全称American Standard Code for Information Interchange,即是美国标准信息交换代码 下面附图:
简单来说,这就是一个标准,跟语言一样,这个这个代表这个意思,那个那个代表什么意思,这个标准促成了人与计算机交流的大好局面,但是嘛,这个东西是由美国人制定的,当初计算机也没普及,从历史的狭隘眼光来看,美国人当然是满足了自己的要求,这128个字符编码对于自己来说是够用了。
但是后来计算机普及了,这就出问题了,就比如 “é”这个法语字母,并不存在ASCII这个字符集里面,那可怎么表示呢,由于ascii是取一个字节,但只占用了一个字节的后面7位,最前面的1位统一规定为0。于是大家就有想法了,占用这个高位,加上前面的128个字符编码,可达到256个字符编码,基本满足了欧洲方面的编码需求,欧洲方面是决解了,那亚洲呢,还有非洲呢,世界上那么多语言文字符号,他们又该何去何从,于是,他们也不甘示弱,在保留前面128个字符编码不变的基础上,奋发造码,例如中国的GB2312,等等.
于是世界上出现了很多种字符集和编码方式,这时候,伟大的OSI看不下去了,身为一系列标准的制定者,它也制订了一套名叫unicode的编码方式,人称统一码,万国码,反正就是很叼。当然,后来所说的UTF-8,UTF-16之类就是unicode的几种实现方式而已!(具体内容我还没仔细看!暂且略过)
上面就说了一些诞生历史什么之类的,个人觉得挺有趣的,下面就说一些定义:
字符集(charset) 所谓字符集,就是一个系统支持的所有抽象字符的集合,而字符呢就是各种文字和符号的总称,例如ASCII字符集啊,GB2312字符集啊!
编码(charset encoding) 编码就是信息从一种形式或格式转换成另外一种形式的过程,计算机上的就是说将具有特定含义信息(如数字、文字、符号等)用二进制来表示的过程。顺提一下解码就是编码的逆过程,而补码嘛,这我还得翻翻书,有知道的可以留意解释下。
字符集和编码的关系就是编码是字符集在计算机上的实现方式!
说说ANSI,这个也是美国朋友推出的,就双字节编码,比如说我们用window自带的文本编辑器保存文件时会出现:
这个ANSI表示的就是默认的编码方式,对于英文文件就是ASCII编码,而中文则是GB2312,不知道你知不知道,反正我是昨天才知道。
这个字符集和编码就先说那么多,其实还有关于每种编码方式,用几个字节啊,什么形式还不是太清楚,且容后补充(2015/5/2)
标签:
原文地址:http://my.oschina.net/u/2002769/blog/409092