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

2.4.2.        应用软件

在操作系统之外的软件,都在此处称为应用软件。

本文以数据库为例,说明应用软件是如何支持中文的。

冯诺依曼体系,构造了“外存->内存->CPU”的体系结构。所以,信息处理的一个环节,就是存储。数据库要存储数据,普通文本编辑器也要保存数据,这样,信息基本上都要“持久化”存储起来。

从外存到内存,文件被打开,数据被读入,读入后,就要被处理,这就有个识别的问题,计算机需要知道读到内存里的是什么、该怎么处理为好。

如果信息要被传输到客户端,那么,信息就有个网络传输的过程(如果是网络传输,因涉及两个操作系统,两头可能支持的编码不一样,则数据传输就可能存在一个“编码转换”的过程)。

一些信息被处理后,是要显示给用户看的,所以又有了输出的过程。

所以,这些过程,在数据库中都存在。我们一起看看KingbaesES数据库中同语言有关的过程是怎么样的。

 

操作步骤

说明

初始化数据目录(指定“--locale”参数)

告诉操作系统,对待本数据目录要以什么Locale处理

创建数据库,指定数据库的编码

告诉数据库管理软件(kingbase数据库引擎),本库中的数据,是以什么编码方式存储和需要用相应的编码规则解释

创建表,插入数据

查阅客户端对应的环境中,Locale的设置,告知服务器,如果服务器的库的编码(上一步中指定的编码)和客户端不一致,按以下方式处理:

1)        当客户端和服务器端编码相同,不需要转换;

2)        当客户端编码是ASCII时,无论服务器是什么编码都不需要进行转换;

3)        当服务器编码是ASCII时,无论客户端是什么编码都不需要进行转换;但是目前对于ASCII不兼容字符集(例如GBKGB18030)中的非ASCII字符,服务器不接受,会报错。

4)        其它情况按照服务器中存在的字符集转换规则进行转换,如果系统中不存在两种字符集之间的转换,则报错。

 

查询表

本步骤除了有上一步涉及的服务器向客户端的编码转换问题外,还有的是结果集的显示的问题。

结果集的显示,此时依赖于客户端的Locale环境。如客户端为的Locale支持GBK,查询出来的数据的编码客户端不支持或不兼容,则从GB18030库中查询出GBK中不存在的字符,则界面显示的就会是乱码。

 

所以,我们可以有个结论是:应用软件自己也可以支持对各种编码(实则是支持各种字符集的处理)的处理。典型的例子还有:

浏览器菜单项中“查看”菜单项有“字符编码”子菜单,提供了对多种字符集的解释支持。

通常的邮件客户端,如foxmail,菜单项“查看”的子菜单“编码”也提供了对多种字符集的解释支持。

计算机是如何处理中文的(八) - 那海蓝蓝 - 那海蓝蓝的博客

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值