齐 凌
(浙江图书馆,浙江 杭州 310007)
信息技术的发展,改变了图书馆的传统工作模式。以图书馆内部业务处理为核心的图书馆自动化系统已经成为图书馆业务发展的必然选择。图书馆服务与图书馆自动化系统是密不可分的,图书馆要提供更好的服务需要有自动化系统的支持,而自动化系统的研发则基于图书馆服务的需求,二者相互促进,共同发展。基于服务和发展的需要,浙江图书馆于 1998年 8月引进并开始使用美国 Innovative Interface公司的 INNOPAC图书管理系统。整个系统包括流通、采访、编目、期刊、Webopac等模块。
在使用 INNOPAC的过程中,我们碰到了部分字符无法显示的问题。1998年起始我们使用的是字符界面的版本 INNOPAC,当时系统的内码使用的是 CCCII码,字符集采用的是 GB字符集。由于GB字符集的字符数量比较少,只有 682个符号和6763个汉字,INNOPAC系统无法接受 GB字符集以外的其他字符,从其他数据库套录的数据也会因为这个原因有部分字符无法显示。再加上老版本采用的是 Telnet的字符界面,操作性和可视性都不太强。因此我们在 2005年升级系统至 Millennium Silver 1.1,即新世纪银版。新世纪银版使用了 Unicode码,采用 UTF-8编码方式,以 GBK字符集为缺省中文字符集。但新世纪银版的 Unicode表和 UTF-8表并没有完整的收录 GBK字符集中的所有字符,这就导致了系统升级到新世纪银版后,系统的汉字仍旧存在问题,部分汉字的显示仍旧出错。之后 Innovative公司陆续推出升级版本,2007年又升级至 Millennium 2006版。这个版本对汉字的处理虽然有所改善,但仍有很多问题存在,系统的 Unicode表和 diac.gbk.unicode表仍然没有能够收录全,部分简体字和繁体字的对应关系没有做好对应,仍存在部分汉字无法显示的问题。特别是系统在 05年从字符模式升级到图形界面时,系统内码由 CCCII码转换到 UNICODE码时出错的数据,仍然大量存在于系统中。在 Millennium工作人员界面和 OPAC界面上检索,几乎没有哪个页面是不存在乱码或内码的问题。
汉字显示问题不能完全解决,将影响系统各个业务环节的正常使用。首先采访的查重会有问题,一旦遇到有问题的汉字,查重结果的准确性就得不到保证。同样,问题也出现在编目模块和流通模块。再加上编目过程中很多汉字输入后无法保存,这样编目信息的准确性、完整性也得不到保证。流通模块的读者信息也同样存在汉字问题,如果遇到不能显示的汉字只能用拼音表示,这样给工作人员和读者都带来不便。读者使用OPAC进行相关检索功能时,检索结果的准确性会打折扣。
Millennium系统的汉字显示问题并不单独存在,大陆地区使用新世纪银版的用户,如清华大学图书馆、西安电子科技大学图书馆、华中科技大学图书馆等多家图书馆都存在类似的问题,各馆也都在积极的寻求彻底解决问题的方法。
要解决字符显示的问题,首先需要搞清楚系统中字符显示出错有哪些情况。对 Millennium系统字符问题进行了分析,字符显示错误的情况主要有以下几种:
(1)汉字显示为异体字。这种情况汉字在系统中显示的并非为我们常用的简体字,而是对应的繁体字或是异体字。这种情况在系统中出现的频率很高,而且很多字都是常用字,例如下表:
(2)汉字显示为 EACC码。这种情况系统中的汉字显示为一串带大括号的字符串,如:{213538}。出现这种情况的汉字一共有 90个,也有一部分为常用字。工作人员或者读者在遇到这些字符串的时候往往无法分辨出对应的汉字,对系统应用带来了很大不便。
(3)汉字显示为乱码。出现这个问题的汉字数量比较多,大部分都不是常用字,日常使用中很难发现,但带来的后果是一样的,工作人员和读者无法正常检索到该记录。
(4)符号显示为乱码。这种情况与上述情况类似,不同点就在标点或者一些字符上,对检索也会带来不便。
(5)部分汉字和符号无法在 Millennium系统中保存。由于汉字和字符无法在系统中保存,导致读者根本无法检索到这些记录,这对工作人员查重以及读者检索带来很多问题。
(1)查找并修改系统中的错误字符。对比系统中的 diac.gbk.unicode表和标准的 UNICODE表,找出 diac.gbk.unicode表中缺少的字符,一共1734个汉字,符号 108个。把缺少的字符的 UNICODE码提交给 Innovative公司,要求公司在 diac.gbk.unicode表中补全。
(2)查找出系统中存在的所有 EACC码共 90个,把这 90个 EACC码对应的中文字符及 UNICODE码提交给 Innovative公司,要求公司修改 diac.gbk.unicode表中的 EACC码为正确的 UNICODE码。
(3)查找出显示为异体字的汉字 38个,显示乱码的字符 242个。
(4)修改系统中的错误字符及方法。公司于2009年 3月底修改完 diac.gbk.unicode表。接着修正 Millennium系统中有问题的数据,包括读者数据和书目数据。具体的修改方法是:通过资料档抓出错误的读者数据、书目数据,每个资料档的数据不能超过 25000条,再利用全域更新,用正确的字符替代错误的字符。因为对系统数据进行全域更新会影响系统速度,对流通借还的影响比较大,借还书的速度很慢,借还数据不能及时更新。所以必须避开借还高峰期,利用下班以及周一闭馆日进行数据修改。还有一点在做全域更新时要关注系统处理档(transaction file)的大小,不能超出上限,否则在做全域更新的这个资料档的所有数据会全部被锁住,这些数据将不能进行任何操作。
从 2009年初开始修改至今,已经修改了 360余个汉字与符号,常用的汉字、符号基本修改完成。累计修改数据 3268314条(其中修改异体字2581111条,修改 EACC码 272770条,修改乱码数据 416707条)。目前在 Millennium工作人员界面和 OPAC界面上检索,基本看不到明显的乱码或者异体字。汉字内码问题的解决,提高了查重的准确性,避免了因汉字问题导致的数据无法检索,提高 OPAC的检索准确率。
〔1〕Innovative Guide& Reference Release 2006Rev.1.Innovative Interfaces,Inc.,2007