1. 问题提出
1) 计算机(电子设备)是为什么会处理汉字?
2) 为什么在中文操作系统中,使用一些软件,有时会有乱码?
3) 编写程序时,为什么要注意国际化的问题?
4) 少数民族的文字能被计算机处理吗?
1.1. 概述
计算机诞生的时候,完全基于英文环境(计算机能处理的是数值型和字符型数据,这些数据是由ASCII组成,也就是说,计算机只支持由ASCII表中定义的字符――精确的讲应该是符号,此范围外的一切“符号”,计算机都不能识别)。
如何让计算机支持非ARCII范围中的符号(比如能处理汉字),看起来似乎是个小问题,但是,其间,还是经历了较为漫长的曲折过程 [1]。
机内码的概念,正是应此而生的。不管什么语言文字,只要在计算机中有对应的表示方式存在(即映射,即对象与对象间的关系),则可以被计算机识别并处理。
这些能被计算机处理的字符组成一个集合,俗称“字符集”。实际上并不精确,此后会单独提及真正的“字符集”概念。
与字符集相关的一个概念,是“编码”。编码的出现,一个意义是:有限表示无限。人的生命是有限的,但人总想长寿或干脆长生不老,实际上也是想以“有限拥有无限”的一种渴求。计算机是“0”和“1”的简单物,但是经“编码”这一手段后,却拥有了无限认知的可能。编码,赋予了计算机表示、识别、推演所有事物的能力。
“映射”,存在一对多的情况。由此,我们可以理解,众多字符集存在的意义(如UNICODE、GBK、GB18030等等)。字符集实际上是使用了编码技术后的产物。
为了形成“大家”(包括计算机等一切有认知能力的物)都能认知的规范,于是就有了一些共同约定产生,由此,可以推及“标准”的概念。
当坐落于世界各地生产者(包括程序员)开发出一些“世界级”产品的时候,当这些产品不是用“世界语”展现的时候,当世界上的人还不能都认识“世界语”的时候,一些产品就要有“本地”的概念了,即产品要用本地的语言、本地的俚语、本地人能理解的方式、本地人所习惯的使用等方式来进行有效表达―――这个过程就是“本地化”。
为了能做到本地化,生产者就要有“国际化”的想法、手段,来生产出适合在世界各地都能方便地实施“本地化”的方法来。所以,国际化和本地化是一对相辅相成的概念。
本文所要表达的,是计算机如何支持中文,所以,接下来,我们把范围限制在计算机软件系统中。在这篇文章中,计算机软件系统只分为两层,一层叫做操作系统,一层叫做应用系统。
要支持汉字,就需要有支持汉字的系统。所谓汉字系统,就是计算机中处理汉字的软件系统。它包括三个方面:
一是汉字操作系统,包括汉字信息输入输出管理软件、文字信息处理软件、汉字字库等:
二是汉字输入法,就是在汉字操作系统支持下,把汉字输入到计算机中所采用的方法,例如,全拼拼音输入法、简拼拼音输入法、五笔字型输入法、手写识别、语音识别等;(将来也许有情感识别、心理识别等等?一些相机技术已经有“笑脸识别”的功能了)
三是汉字应用软件,用于对文本的编辑排版、显示、处理等,如Word、Firefox、DBMS等。
这三个,前两者,都可以归属于操作系统范畴。