您的位置:首页 > 理论基础

计算机是如何处理中文的(八)

2017-03-13 18:47 190 查看

2.4.2.        应用软件

在操作系统之外的软件,都在此处称为应用软件。 本文以数据库为例,说明应用软件是如何支持中文的。 冯诺依曼体系,构造了“外存->内存->CPU”的体系结构。所以,信息处理的一个环节,就是存储。数据库要存储数据,普通文本编辑器也要保存数据,这样,信息基本上都要“持久化”存储起来。 从外存到内存,文件被打开,数据被读入,读入后,就要被处理,这就有个识别的问题,计算机需要知道读到内存里的是什么、该怎么处理为好。 如果信息要被传输到客户端,那么,信息就有个网络传输的过程(如果是网络传输,因涉及两个操作系统,两头可能支持的编码不一样,则数据传输就可能存在一个“编码转换”的过程)。 一些信息被处理后,是要显示给用户看的,所以又有了输出的过程。 所以,这些过程,在数据库中都存在。我们一起看看KingbaesES数据库中同语言有关的过程是怎么样的。  
操作步骤
说明
初始化数据目录(指定“--locale”参数)
告诉操作系统,对待本数据目录要以什么Locale处理
创建数据库,指定数据库的编码
告诉数据库管理软件(kingbase数据库引擎),本库中的数据,是以什么编码方式存储和需要用相应的编码规则解释
创建表,插入数据
查阅客户端对应的环境中,Locale的设置,告知服务器,如果服务器的库的编码(上一步中指定的编码)和客户端不一致,按以下方式处理:
1)        当客户端和服务器端编码相同,不需要转换; 2)        当客户端编码是ASCII时,无论服务器是什么编码都不需要进行转换; 3)        当服务器编码是ASCII时,无论客户端是什么编码都不需要进行转换;但是目前对于ASCII不兼容字符集(例如GBK和GB18030)中的非ASCII字符,服务器不接受,会报错。 4)        其它情况按照服务器中存在的字符集转换规则进行转换,如果系统中不存在两种字符集之间的转换,则报错。  
查询表
本步骤除了有上一步涉及的服务器向客户端的编码转换问题外,还有的是结果集的显示的问题。
结果集的显示,此时依赖于客户端的Locale环境。如客户端为的Locale支持GBK,查询出来的数据的编码客户端不支持或不兼容,则从GB18030库中查询出GBK中不存在的字符,则界面显示的就会是乱码。
 
所以,我们可以有个结论是:应用软件自己也可以支持对各种编码(实则是支持各种字符集的处理)的处理。典型的例子还有: 浏览器菜单项中“查看”菜单项有“字符编码”子菜单,提供了对多种字符集的解释支持。 通常的邮件客户端,如foxmail,菜单项“查看”的子菜单“编码”也提供了对多种字符集的解释支持。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: