各种字符编码介绍1. ASCII 我们需要了解的最早编码是ASCII码。它用7个二进制位来表示,由于那个时期生产的大多数计算机使用8 位大小的字节,因此用户不仅可以存放所有可能的ASCII字符,而且有整整一位空余下来。如果你技艺高超,可以将该位用做自己离奇的目的:WordStar中那个发暗的灯泡实际上设置这个高位,以指示一个单词中的最后一个字母,同时这也宣示了WordStar只能用于英语文本。 由于字节有多达8“位的空间,因此许多人在想:呀!我们可以把128~255之间的编码用”做个人的应用目的。问题在于,同时产生这种想法的人相当多,而且在128~255之间的各个位置上应该存放什么这一问题上,真是仁者见仁智者见智。事实上,只要人们开始在美国以外的地方购买计算机,那么各种各样的不同OEM字符集都会进入规划设计行列,并且各人都会根据自己的需要使用高位的 128个字符。如此一来,甚至在同语种的文档之间就不容易实现互换。 ASCII可被扩展,最优秀的扩展方案是 ISO8859-1,通常称之为 Latin-1。Latin-1包括了足够的附加字符集来写基本的西欧语言。最后,这个人人参与的 OEM终于以 ANSI标准的形式形成文件。在 ANSI标准中,每个人都认同如何使用低端的 128个编码,这与 ASCII相当一致。不过,根据所在国籍的不同,处理编码128以上的字符有许多不同的方式。这些不同的系统称为代码页。 同时,甚至更为令人头疼的事情正在逐步上演,亚洲国家的字符表有成千上万个字符,这样的字符表是用 8位二进制无法表示的。该问题的解决通常有赖于称为 DBCS(doublebyte character set,双字节字符集)的繁杂字符系统。 不过,仍然需要指出一点,多数人还是姑且认为一个字节就是一个字符,以及一个字符就是 8个二进制位,并且只要确保不将字符串从一台计算机移植到另一台计算机,或者说一种以上的语言,那么这几乎总是可以凑合。当然,只要一进入 Internet,从一台计算机向另一台计算机移植字符串就成为家常便饭了,而各种复杂状况也随之呈现出来。令人欣慰的是,Unicode随即问世了。2.iso8859-1属于单字节编码,最多能表示的字符范围是 0-255,应用于英文系列。比如,字母'a'的编码为0x61=97。很明显,iso8859-1编码表示的字符范围很窄,无法表示中文字符。但是,由于是单字节编码 和计算机最基础的表示单位一致,所以很多时候,仍旧使用 iso8859-1编码来表示。而且在很多协议上,默认使用该编码。比如,虽然"中文"两个字不存在 iso8859-1...