1、字节、字符、字符串
字节:计算机中的存储数据的单元,一个8 位的二进制数,一个很具体的数据空间
比如:‘0xCC’,‘0x45’,‘0xBA’在计算机中一般使用十六进制进行保存一些字符,颜色的保存等
字符:人们使用的记号,抽象意义上的一个符号,
比如:‘$’,‘#’,‘中’,‘2’等....
ANSI 字符串:在内存中,如果字符使用ANSI 编码形式存在,一个字符可能使用一个字节或多个字节来表示,
那么我们称这种字符串为ANSI 字符串或者多字节字符串
比如: 一个中文占有两个字节: “我是obge” 占有8个字节
UNICODE字符串: 在内存中,如果“字符”是以在UNICODE 中的序号存在的,
那么称这种字符串为Unicode 字符串或者宽字节字符串
比如:一个中文占三个字节:"我是obge"占有10个字节
2、ASCII 、ANSI、Unicode
ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于显示现代英语,而其扩展版本EASCII则可以部分支持其他西欧语言,并等同于国际标准ISO/IEC 646。
ASCII 是这套编码系统的传统命名,IANA 现在更倾向于使用它的新名字 US-ASCII,是 IEEE里程碑 之一。
ANSI 美国国家标准学会(American National Standards Institute,ANSI)是负责制定美国国家标准的非营利组织。美国国家标准学会授权标准起草机构按照一系列规范编写标准草案。由此产生的候选文献通过ANSI审核批准后成为美国国家标准。美国国家标准学会是国际标准化组织和国际电工委员会的成员。
比如:中文DOS,中文windows 95/98 ,日文 Windows 95/98
不同国家和地区制定了不同的标准,由此产生了GB2312,BIG5,JIS等各自的编码标准。这些使用2个自己来代表一个字符的各种汉字延伸编码方式,称为ANSI 编码,
Unicode(中文:万国码、国际码、统一码、单一码)是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑可以用更为简单的方式来呈现和处理文字。
Unicode 伴随着通用字符集的标准而发展,同时也以书本的形式对外发表。Unicode 至今仍在不断增修,每个新版本都加入更多新的字符。
Unicode涵盖的数据除了视觉上的字形、编码方法、标准的字符编码外,还包含了字符特性,如大小写字母。
Unicode发展由非营利机构统一码联盟负责,该机构致力于让 Unicode 方案取代既有的字符编码方案。因为既有的方案往往空间非常有限,亦不适用于多语环境。
Unicode备受认可,并广泛地应用于电脑软件的国际化与本地化过程。有很多新科技,如可扩展置标语言(Extensible Markup Language,简称:XML)、Java编程语言以及现代的操作系统,都采用Unicode编码。
3、系统的发展
从计算机对多国语言的支持角度看,大致可以分为三个阶段
第一阶段:ASCII
计算机刚开始支持英语,其他语言不能够在计算机上存储和显示
比如:英文DOS
第二阶段:ANSI编码(本地化)
为了计算支持更多语言,通常使用0x80~0xFF 范围的 2 个字节来表示 1 个字符,不同的国家和地区制定了不同的标准,不同的编码之间又互不兼容。
比如:中文 DOS,中文 Windows 95/98,日文 Windows 95/98
第三阶段:Unicode(国际化)
为了使国际间信息交流更加方便,国际组织制定了 UNICODE 字符集,为各种语言中的每一个字符设定了统一并且唯一的数字编号,以满足跨语言、跨平台进行文本转换、处理的要求。
比如:Windows NT/2000/XP,Linux,Java