计算机是如何处理中文的(八)
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,菜单项“查看”的子菜单“编码”也提供了对多种字符集的解释支持。
相关文章推荐
- 计算机是如何处理中文的(四)
- 计算机是如何处理中文的(十)
- 计算机是如何处理中文的(五)
- 计算机是如何处理中文的(七)
- 计算机是如何处理中文的(二)
- 计算机是如何处理中文的(九)
- 计算机是如何处理中文的(六)
- 计算机是如何处理中文的(一)
- 计算机是如何处理中文的(三)
- 如何处理db2中文不显示
- JAME中DataGram.getAddress()获得的是计算机名而不是相对应的ip地址,该如何处理
- QT4如何处理中文字符
- MySQL中如何处理中文字符问题
- Django如何处理语言偏好(根据此可以设置中文)
- 如何处理struts2开发中的中文乱码问题
- 如何处理中文传输问题?
- 安装了英文操作系统,所有的中文应用软件都乱码如何处理?谢谢各位大虾!
- haskell如何处理中文字符?
- 如何配置Filter过滤器处理JSP中文乱码
- 打开网页提示:为了保护你的安全,internet explorer已经限制此文件显示只要能访问您 的计算机的活动内容,单击此处查看选项。如何处理