6

让电脑处理中文:十个演示

 3 years ago
source link: https://zhuanlan.zhihu.com/p/372200102
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

让电脑处理中文:十个演示

电脑博物馆 www.DNBWG.com 站长

此文是我在由科罗拉多大学博尔德分校 媒介考古实验室 x (民族+科技)微基金 (MAL x (Race + Technology) Micro-Grants)支持的 avant la lettre: 中文文字考古:onebigear/avant_la_lettre_public_copy 活动中的演讲稿,原稿“Bring Chinese Characters into computer”为英文,主要面向非中文母语的听众,此译文保留了原稿大部分内容,仅对部分语言做了调整。

大家好,感谢大家参加我的在线演讲,我今天将会分享一个中国的计算机文化中时常讨论的话题,即“让电脑处理中文”。在这个演讲中,我将展示中国电脑工程师和业余爱好者社区在利用计算机技术处理中文信息方面的一系列努力。

关于这次演讲

首先允许我自我介绍一下,我是一名软件工程师,同时我也是独立的媒体研究者。之前十多年中我大多数时间我都住在加拿大温哥华,我在2019年的时候回国开展了一系列研究项目,希望能够以此更深入的了解中国本土电脑爱好者社群。

在2003年和2004年的时候,我是一个软件汉化爱好者,我那时候还是高中生,说起来也是18、19年之前的事情了。我当时把一些英文软件翻译成中文,主要是是运行在Palm OS上的移动应用程序,希望国内的用户能够更方便的使用这些软件。

v2-65c47cd097aa0aca56562dccd0be7258_720w.jpg

互联网档案馆中,中国Palm用户组(CnPUG)的网页存档里还可以找到我的一些作品。

我当时的网名是 Dr.Quest,来自于动画片“Jonny Quest”中的一个角色。大家可以看到我当时汉化过的一些软件,比如GreyPaint和EasyCalculator等等。

对移动操作系统中文支持的研究,是我研究中文语言处理的起点。除了PalmOS,我还研究过Windows CE系统。Windows CE对中文的支持要好得多,因为它有很多对中文处理非常重要的功能,包括对Unicode和TrueType的支持。我的这些关于移动平台的个人经验,也构成了中国爱好者社区历史的一部分。

v2-0dc512d5f86cbf5b27d21554e414c3a0_720w.jpg

当然,今天我的演讲有一些局限性:一个是我目前的研究主要关注于中国大陆的实践,这不仅因为我是在中国大陆长大的,也因为我前面所提到的,我是中国大陆软件汉化社群的一员。

所以,我对中国大陆的情况,包括技术标准、用户社区和技术政策都更加熟悉。相比之下,香港和台湾的情况对我来说就比较陌生。因此,我目前的研究和今天的演讲将侧重于中国大陆的实践。

另外,与许多关注于官方和学术机构的研究不同,我的研究完全出自我的个人兴趣。所以我对中文编码的研究将更加基于爱好者的视角。也因此,我的研究更关注微型计算机,特别是家用计算机,而无法包括大型主机的情形。

据我所知,1980年代之前,在中国有一些大型机可以配合中文电报设备处理汉字。但是由于这些文件和资料只能从一些政府部门和研究机构获得,我目前还没有足够的资料对这些用例开展研究。

作为宝藏的汉字

在我看来,对于汉字的使用者来说,汉字作为宝藏的同时也带来麻烦。由于我的母语是普通话,所以这种感觉直到我搬到加拿大后才变得明显,在加拿大期间,通过汉语学习者和非汉语母语的汉字使用者的接触,我对汉字的作用有了一些不同方面的了解。

相比计算机世界里最常用的英语,使用汉字表达的语言有着更高的信息密度。有一项来自Twitter的研究显示,推特上日本用户的推文比英语用户更加简短。因为日语中使用了汉字,因此也具有更高的信息密度,表达相同意思的句子会更短。

同时,即使是单个汉字也有丰富的表义。一个很好的例子就是表情符号。比如“禁”表示不要做某事,这是“合”意味着更联合或合作,“割”意味着分离或是交易,“空”意味着空闲或空间等等。

文言文是东亚地区共同的历史性语言,是中国、日本、韩国和越南学者间通用的书面语。就像欧洲的拉丁语一样。在中国,中学毕业的学生就已经具备了阅读古汉语的基本知识。这意味着他们可以阅读相当多的历史档案,这其中不仅包括中国的文献,也包括相当数量的韩国、日本和越南古籍。

带来麻烦的汉字

汉字也给它的使用者带来了不少麻烦,汉字数量众多,清朝的官方字典《康熙字典》有47000多个汉字。而广泛收录中文和日文语汇的《大汉和辞典》有超过5万个汉字。数量巨大的汉字意味着陡峭的学习曲线,学习者需要花费数年的努力来学习如何阅读和书写汉字。

在中国大陆,一个三年级或四年级的学生可以读大约2500个,写大约1600个汉字。在使用较少汉字的日本,学生在六年级时可以阅读大约1000个汉字。

此外,正如这些幻灯片里显示的那样,汉字有很多笔画。因此,相比拉丁字母,需要更多的像素才能清楚地显示汉字。这往往对软件、硬件开发者都提出更高的挑战,一个例子是90年代中后期开发的Palm Pilot掌上电脑,由于是一款低功耗的移动设备,它的硬件资源非常有限,屏幕分辨率只有160x160像素,为了在掌上电脑上清晰的显示汉字,工程师们制作了10x10像素点阵字体,这个规格可能是广泛使用的汉字字体中最小的一种了。

捉襟见肘的内存:64K还是640K?

汉字的数量如此之大,因此可以想见,处理汉字应会消耗大量的内存。我本人很喜欢1980年代的Commodore 64电脑,当我住在加拿大的时候,有很多爱好者向我展示了这款电脑上丰富的游戏软件。这些游戏展示了Commodore 64的强大图像和声音功能,但很遗憾的是它并不能处理中文。

事实上,不仅仅是Commodore 64,大多数典型的8位计算机系统在没有经过特别改造的情况下都不能处理中文,因为8位处理器通常无法直接支持较大的内存空间。

当然在80年代也已经有一些更先进,也更昂贵的16位个人电脑了,比如运行PC-DOS的IBM PC就可以支持640k内存,这个容量远远超过大多数流行的8位电脑,对于当年的电脑工程师来说算得上是“海量”了。

有一个关于比尔·盖茨的都市传说,就是盖茨曾经说:“没有人用得着超过640K的内存”。然而,对于用计算机处理中文这件事情来说,640K内存仍然是捉襟见肘的,在后面我会和大家一起计算一下显示中文字符需要多少存储空间。

中国的字符标准在很大程度上受到日本字符标准的影响。早在20世纪70年代,日本就已经具备了发达的微电子工业,因此在东亚,日本也是最早开发成功支持汉字的微型电脑的国家。

为了节省有限的硬件资源,所有的汉字标准都只选取了数万汉字中较为常用的一部分字符。日本最初的JIS字符系统只有6800多个字符,该字符集是在1978年标准化的。而中国大陆GB标准与日本JIS标准相当相似,它比日本标准的字符更多一些,有7400多个字符。

上面这张表显示了不同的字符集包含多少汉字,我们可以看到所有这些字符集都将汉字分为两个子集,或者说两个“级别”。一级汉字是最常用的字符,而二级字符则稍微少用一些,但与字典中数以万计的字符相比,即使是二级汉字仍然要比没有收录的那些字符更常用。

在表中最早出现的标准是日本的JIS,只包含6800多个字符,稍后出现的是中国大陆标准,即GB标准,包含7400多个字符;而作为台湾地区行业标准的繁体字符集Big5标准化的时间较晚,是1984年,但包含的字符更多,有13000多个字符。

算一算:需要多少内存?

限制字符集的字符数是为了节省内存,那么实现汉字的显示需要多少内存容量呢?让我们来计算一下:

16×16像素是最常用的中文点阵字体的尺寸之一,单色像素每个像素只要一个比特,因此每个字符就是16×16 = 256比特,也就是32字节(一个字节有8个比特)。

要把 GB2312 中的 7000 多个汉字的点阵全部存储在内存里,需要 1.9Mbits (1.9兆比特),换算一下就是232Kbytes(千字节),而一般的 8 位计算机,如 Apple IIe 或 Commodore 64,都只有 64KBytes 内存,这样的内存容量是无法装下所有汉字点阵的。

即使是装满640KB内存的IBM PC XT电脑,当装载全部汉字字体之后,可以用来运行程序的内存也会大打折扣,所以许多早期的中文计算机方案都是使用带有ROM的扩展卡,在日语或简体中文系统中,第一级字符使用一兆比特,第二级使用另一兆比特,所以2Mbit的ROM芯片可以包含所有字符。

用同样的方法,我们可以计算一下Big5繁体中文系统需要多少内存容量,大概就是2Mbit可以包括一级字符,4Mbit可以包括该标准下的所有字符。

小教授二号

让我们看看下一张幻灯片,这台电脑是市场上能买到的最早支持中文的微型电脑,它叫MicroProcessor II-C,中文名叫“小教授二号”,它是由台湾地区的Multitech开发的,这个品牌大家可能听上去会有点陌生,实际上它就是目前最大的PC制造商之一Acer(宏碁)早期的名字。作为80年代上半叶推出的电脑,它在一定程度上与Apple II兼容:可以运行Apple II图形模式下的程序,但无法兼容Apple II文本模式的程序。

与我们之前的计算不同的是,这台电脑只增加了64KB ROM就可以显示2.2万个汉字。它使用了一个相当讨巧的方法。具体的细节我还不是太清楚,我猜测可能是通过存储偏旁部首以节省内存空间,然后通过软件程序将它们组合成完整的汉字,但我也没有很确凿的证据证明这一点。

ZD-2000中文电脑/终端机

另一个值得一提的是ZD-2000中文电脑和终端。这台机器既可以作为一台8位微机独立工作,也可以作为大型机的终端。这张照片拍摄于20世纪80年代初的石家庄陆军指挥学院,显示出这台计算机是由军队开发的。

这款电脑的基础是NEC的PC-8001电脑。当时NEC已经成功开发了几款可以显示日语汉字的计算机,成为中国的工程师开发本土中文电脑的重要参考。

根据一些资料,在这台电脑上就采用了两级汉字的设计,最常用的一级字符存储在ROM中,这意味着它可以更快地访问;而不太常用的二级字符则存储在较慢的软盘中。尽管如此,由于这台电脑的军方背景,许多技术细节仍然没有公开,我并不能找到任何这款电脑的模拟器或当时的应用软件。

用日文系统来处理中文?

那么有没有可能直接用不加改造的日文电脑系统处理中文呢?这就要看情况而定了,JIS标准有6000个汉字,能够表达的意思已经相当丰富了,但是它仍然缺少一些在中国最常用的字符:比如“办法”,“垃圾”都是中文的常用词,JIS字符集没有这些字符,只能使用不合规范但相似的字符来代替,就像幻灯片中显示的那样。这种变通方法在工业设备中很常见,因为许多工业设备是直接从日本进口的,没有专门的中文软件。

另一种情况是消费类电子产品,例如这张照片里MD机的线控遥控器,这个遥控器只有日文和英文版本,其中日文版本在中国非常流行,因为可以通过日文汉字来显示中文歌名。

我这里做一个小演示来展示一下用于MD线控或是类似情形的软件: GB-Shift JIS转换器,它是2002年左右开发的一款软件,是为Windows 98系统开发的。我们看到这个软件在将GB编码的简体中文转换成Shift-JIS编码时,一些字符从简体字转换为繁体字,一些字符被替换为相似但不相同的字符。

虽然因为这些繁体字和错别字的存在,这种没有中文支持的日文系统不能用于处理正式的公文,但对于业余爱好者或一些文字内容不那么重要的工程场景下,这种技巧曾经在中文世界里广泛的使用。

基于硬件与软件的汉字系统

使计算机支持中文的方案大概可以分为两类,即基于硬件的方案和基于软件的方案。

目前国内销售的大多数电脑都使用软件来支持中文,它们的硬件部分与在其他国家销售的型号都没有明显的不同(通常只有配置上的增减和印有汉字的键盘)。然而直到在20世纪90年代末之前,以“汉卡”为代表的硬件解决方案都没有完全被淘汰。

比如说我们刚才谈到的两款电脑,MicroProfessor II-C和ZD-2000,都是使用硬件解决方案来支持中文的。这种硬件,通常是安装在主板上的ROM芯片,其中存储了中文字体和中文支持的相关软件,当然有些时候这个ROM芯片不是直接焊在主板上,而是通过扩展卡的形式安装在主板上的特定插槽里。

跟基于软件解决方案相比,硬件方案通常工作速度更快,使用更少的CPU和内存资源。但它在安装和扩展方面比较困难:通常用户需要打开机箱并将汉卡插入扩展槽,有时还需要设置跳线和驱动程序,因此安装汉卡通常需要用户对电脑硬件比较了解,或是由专业人员来完成。另外,有些电脑没有扩展槽,例如一些老式Macintosh电脑,这样也就没法通过安装汉卡的形式来支持中文了。

软件解决方案通常以中文软件套装的形式出售,这种软件套装一般都会同时包括中文字体和输入法,有时也会捆绑汉化版的字处理软件。它的启动速度比较慢,因为从软盘或硬盘加载字体到内存里需要不少时间。

而且通常软件方案使用更多的CPU资源和内存空间,有些时候软件中文系统也会挑显卡,大多数中文系统都不支持早期IBM PC使用的CGA适配器,因为CGA显卡的分辨率很低,显示的中文字符很有限。在80、90年代,实用的中文电脑只要要安装HGC单色显卡,或VGA彩色显卡。

相比硬件汉卡来说,中文软件使用起来更加容易,很多时候只要插入磁盘并启动电脑,中文环境就会在启动的过程中自动加载。同时中文系统软件通常比硬件汉卡要便宜得多。特别是盗版软件在20世纪90年代相当普遍,因此对中国的个人用户来说,中文系统几乎是免费的。

中文软件系统开始流行是在IBM AT级别的兼容电脑开始流行之后,典型的IBM AT兼容机配置是286 CPU,1M内存和1.2M高密度5英寸软驱。在286电脑上,一些中文系统可以将字体、输入法等较占内存的资源加载到640K以上的内存空间,省出宝贵的640K常规内存给用户的应用程序使用。

80、90年代一些典型的微型计算机的中文支持方式

这张表格展示了不同计算机平台的流行度,和相应的中文解决方案。

IBM PC的兼容机在中国最为普遍,它们使用16位8086、8088或更先进的CPU,运算速度较快,也支持比较大的内存容量,同时有许多不同的厂商提供多种类型的的中文硬件和软件。

在20世纪90年代,基于红白机开发的学习机作为低成本的家用电脑也非常流行,90年代中后期期的学习机比作为其开发原型的红白机和大多数8位电脑要强大得多,在这次演讲的后面,我将演示步步高学生电脑模拟器,来展示这类电脑的运行状况。

包括小教授二号在内,带有中文支持的Apple II克隆机在中国也很流行,我会演示中国大陆最流行的Apple II克隆机CEC-I中华学习机来向各位演示中国Apple克隆机的功能。

NEC PC-98系列是为日文环境开发的计算机,它们曾作为制造业设备大量进口到中国。使用Zilog Z-80处理器的8位家用电脑,如Vtech(Laser 310)和ZX81克隆机都有若干不同类型的硬件中文解决方案,但都没有像汉化Apple II克隆机那样流行。使用68K处理器的苹果Macintosh从OS 6.0.7开始加入中文支持,但是Macintosh对于当年的大多数国人来说都太贵了。Unix工作站从90年代后期开始在X-Window中加入中文支持,但这些工作站同样非常昂贵因此也很不普及。

演示1:CEC-I

中华学习机——CEC系列是Apple IIe的仿制型。它们主板上安装有包括 1 级和 2 级 GB2312 字符的 ROM芯片以及相关的软件,因此它的中文系统是一种“板载汉卡”式的硬件方案。CEC-I是这个系列的第一个型号,从1987年开始大量生产,并持续到90年代初,这些电脑在学校中曾被广泛使用。

演示2:小霸王SB486

小霸王SB486系列是最流行的基于仿制红白机的家用电脑之一,它配有IBM PC相同键位的键盘。这款机型出现于20世纪90年代出现时,此时大容量ROM已经较为便宜,所以它的软件都存在一张4Mbits的卡带(学习卡)里,我们现在能找到若干个不同版本的学习卡。它有一个并行端口,可以从字处理软件中打印文稿,但这个型号不支持软驱。

演示3: HHBIOS2.13

"2.13 "是由吴晓军开发的CCDOS 2.10的修改版,“2.13”这个数字延续自它的前身“2.11”和“2.12”。在2.13发布之后,吴晓军选择用字母来标记其后续的更新。我在这个演示中使用的是2.13I,这是2.13的第9次更新。

2.13使用了DOS外挂软件中文解决方案中最常见的技术路径,即接管了BIOS中断10h来管理汉字显示,中断16h用于键盘输入,中断17h用于打印输出。这种做法也是在VESA VBE和直接写屏等技术流行之前的事实标准。

2.13设计的非常优秀,它即可以在老式的CGA显卡上工作,也可以和后来成为PC事实标准的VGA显卡一起工作。大多数英文软件不需要做任何改动就可以配合2.13系统处理中文信息。在这个演示中,我会展示2.13和汉化版WordStar。

演示4:UCDOS

UCDOS是20世纪90年代末的产品,它是一款非常强大的中文软件套装,提供更“智能”的中文拼音输入法,并且捆绑了流行的文字处理软件金山WPS,以及类似Windows 3.1的图形界面UCSHELL和所见即所得风格的表格软件UCTAB。

演示 5:BBGCDOS

步步高软驱一号是由任天堂红白机衍生而来的最强大的“学习机”型家用电脑之一,它内置了512KB 内存,因此可以容纳全部1 级和 2 级 GB2312 点阵字体。同时它还内置了3.5英寸高密软驱,完全兼容PC-DOS的1.44MB格式。它还有自己的 “WPS”文字处理软件,与UCDOS不同的是,这个 “WPS”由金山开发的,而是由清华大学的唐瑞春教授专门为这类学习机开发的。步步高的WPS可以打开和创建金山WPS格式的文件,因此它可以在IBM PC和步步高电脑之间交换数据。

GB2312 的限制和对GB编码的扩展

正如前面的演示中展示的那样,从 80 年代末的 CEC-I 到 90 年代末的 UCDOS 和 步步高学生电脑,中文计算机系统已经发展到一个相当成熟的阶段,也为中文使用者提供了能够显著提高生产力的数字化工具。

但是上面这些计算机系统仍然有一个明显的限制,就是它们所遵守的GB2312标准。GB2312字符集包含6000多个字符,但仍不能涵盖所有用途。特别是GB2312中缺少一些人名常用的字符,如 "堃 "和 "镕"。

在20世纪90年代末,GB编码缺字成为一个特别棘手的问题。对新闻记者来说这一点尤其重要,因为如果他们的电脑到1998 年还在使用基于 GB2312标准的中文系统,那么这些电脑就无法正确显示中国总理的名字:朱镕基先生的名字中的 “镕”并不包括在GB2312中。

因此1995年GB2312有了一个扩充版本,即GBK,含义为“国家-标准-扩展”,它包括21000多个汉字和800多个符号。微软从Windows 95开始支持GBK标准。随后中国大陆的电脑使用者开始陆续将他们的操作环境从基于DOS的系统(如UCDOS)升级到中文Windows 95以支持更加强大和实用的GBK编码。

接下来的两个演示将显示其区别。第一个演示使用微软专门为简体中文用户开发的Windows 3.1升级版Windows 3.2完成。而另一个演示将展示支持GBK的Windows 95。

演示6:Windows 3.2/UserFont.exe

我的Windows 3.2模拟器中安装了WPS 97,它是金山WPS的Windows版本。假设我是一个新闻记者,想把今天的新闻标题输入电脑,但是我无法完成这个任务,因为Windows 3.2只支持GB2312编码。

Windows 3.2 提供了“造字程序”,我可以创建自定义字符,并这个字符添加到我的系统中。但是,我把这个字符的编码指定为造字区专用的 "AAA1",由于它不是标准化的代码,所以它只能供我个人使用,不能用于文档交换,而其他人的计算机仍然不能显示这个字符(有一些造字档在一些企业和政府部门见小范围通用,但都未广泛使用)。

“造字程序”在较新的Windows版本中仍有提供,称为“Private Character Editor”,即“TureType 造字程序”,顾名思义,新的造字程序并不像Windows 3.2提供的那样使用点阵字体,而是基于TrueType矢量字体技术。

将字符添加到自定义字体中是一项相当辛苦的工作,所以如果我有很多GB2312以外的字符需要使用,我需要在造字上花费不少时间。

演示7:Windows 95 / GBK

因为Windows 95可以支持 GBK,所以相比Windows 3.2的情况要好得多,我在 Windows 95 上输入同样的新闻标题就没有任何障碍。

但是,Windows 95中只有宋体和黑体支持GBK,这是中文中最常用的有衬线和无衬线字体,像类似手写字体的楷体和较细的衬线字体仿宋体仍然只支持GB2312。

在一些90年代的报纸上,我们偶尔会发现不同的字体会被混用,因为不是所有的字体都支持GBK标准,当遇到不支持的字的时候,有时人们会选择类似的字体替代不支持的字(比如用宋体替代仿宋体),而非额外造字。

HZ代码,在Usenet上传输中文

在20世纪80年代末到90年代初的时候,我们今天所说的互联网还没有那么普及。然而在美国和加拿大,Usenet网络大专院校中相当普及。也因此一些中国留学生得到了与计算机网络打交道的机会,并且开始试验在Usenet上传输中文信息。这一试验促使他们开发了一种可以在使用7-bit ASCII编码的Usenet网络上传输GB2312信息的新编码。

GB2312的中文信息无法直接Usenet上传输的原因是因为许多大型主机都不支持 8-bit扩展ASCII编码,比如许多IBM 大型机使用 EBDIC编码。虽然有一些程序可以在EBDIC和ASCII之间进行转换,但通常只有7-bit标准ASCII字符是可以完整转换的。

HZ码对基于GB2312的中文信息进行了变形。它从把GB2312编码每个字节的第一位删除。因为所有的汉字代码的第一位都是以1开头的。而为了区分一段文字中的汉字部分和ASCII部分。它使用波浪线“~”作为转义序列。时至今日,我们仍然可以在Google Group里找到一些使用HZ编码的文本。这是因为Google Groups已经归档了许多早期的Usenet讨论。

演示8:ZWDOS

为了在IBM PC上阅读从Usenet上下载的HZ编码信息,魏亚桂开发了ZWDOS,这个软件是通过网络分发的免费软件,因为它出现在万维网流行之前,通常人们会在BBS和FTP服务器上下载它。ZWDOS是为显示内容而设计的,没有捆绑中文输入法,也因此它不是一个完整的计算机中文解决方案。

要用HZ编码发表中文文章,就要用转换软件把GB2312或Big-5编码的文件转换成HZ编码。20世纪90年代初,在美国和加拿大留学的中国学生创建了第一份中文在线杂志《华夏文摘》,这份网络杂志通过Usenet网络的电子邮件系统发行,也推动着HZ编码和ZWDOS流行起来。

同时,Usenet上的alt.Chinese.text小组成为网络上第一个汇集了来自大陆、港澳台和海外各地不同背景的华人社群的中文舆论广场,深刻的影响了早期的中文互联网社区的形成。

一些有趣的事实

关于在20世纪80年代到90年代的中文系统值得讨论的事情还有许多。在90年代中后期,除了GBK标准之外,由于计算机硬件资源正在快速增长,Unicode也开始流行。Microsoft Office 97是第一个支持Unicode的版本,因此我们可以在一个文件中包含中文与其他非拉丁字母的语言,如希伯来语和泰语,这些语言也有着迥异于拉丁字幕的复杂的书写系统。

GBK 并不在所有的情况下都与 GB2312 兼容,特别是在那些大量使用ANSI Art菜单的 BBS 系统中,我将在后面展示一个小演示,说明 GBK支持是如何破坏了BBS系统的兼容型的。

接下来是 Palm OS。它是90年代末到2000年代初非常流行的移动操作系统,许多早期的移动互联网应用都建立在它上面。与后来的移动系统如Windows Mobile、iOS和Android相比,它对中文用户不是很友好。在Palm上的出现乱码的情况明显多于之后流行的移动操作系统,特别是在2000年代末UTF-8开始流行之后。我也将做一个关于这个问题的演示。

中国的寻呼系统使用的是一种改良版的POCSAG系统,这一标准在2000年标准化。它对中文进行编码的方式与HZ相似都是将GB2312的第一位切掉,但寻呼系统并没有使用“~”起始的序列,而是使用Shift-in(0x0F)和Shift-out (0x0E)ASCII字符在中文和ASCII字符之间切换。

演示9: 使用GBK编码导致的ANSI Art乱码

这个演示中我会运行北京天堂资讯站BBS的备份。这个备份制作于1998年。Windows 95有两种方式来运行MS-DOS方式,一种是带有GBK字符支持的窗口模式。我们可以看到GBK字符显示没有任何问题。但是在这种模式下,BBS的菜单却不能正确显示。

Windows 95的另一个运行MS-DOS程序的方式则是全屏模式,在这个模式下Windows 95下提供了中文支持。但它只是外挂于MS-DOS 上的中文 DOS 系统,也被称作PDOS95,与之前提到的 2.13、UCDOS类似,它只支持 GB2312,但是在这个模式下 BBS 菜单比窗口模式中显示得更好看。

不过在当时,最受BBS用户欢迎的中文系统是TWAY天汇,在天汇系统下,BBS菜单的效果相当漂亮。

演示10:使用CJKOS的PalmOS掌上电脑

最后一个演示的,是我研究中文编码与汉化的出发点。也就是Palm OS。CJKOS是中国大陆最流行的Palm OS外挂中文系统,它的开发者是杜永涛,我记得他是一位来自广州的开发者。CJKOS不仅提供汉字显示和输入功能,而且还提供用户界面的本地化。这意味着它可以实现完整的中文掌上电脑体验。2002年,Palm公司正式进入中国大陆市场的时候,就没有像日文版Palm OS那样开发中文版Palm OS,而是将CJKOS与英文版本的Palm OS捆绑销售。

CJKOS只有GB和GBK版本,除了Palm智能手机的短信外,它没有Unicode支持。在这个演示中,我打开百度首页,因为百度首页已经转用UTF-8编码,所以Palm无法正确显示该网站。我建立了自己的手机网站“小可怜网”来演示早期的中文手机网站是如何工作的,它使用的是GB2312编码。我们可以看到它在Palm和CJKOS上显示得非常好。我很开心看到这个画面,因为它和我在2003年或2004年所体验到的事情场景几乎完全一致,在那个时候,我第一次尝试用Palm和带有蓝牙功能的手机访问到原始的移动互联网,而那种兴奋直到现在我还记得,因为那正是今天移动互联网的起点。

谢谢大家!


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK