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

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

2017-03-13 18:47 786 查看

2.4.       系统软件

2.4.1.        操作系统

操作系统支持中文,其原理,本质上在于,中文的每个字不够用单字节表示,汉字机内码因此是多字节字符组成,而机内码是操作系统识别和处理符号的基本单元,所以,汉字机内码支持了汉字能被表示、识别、处理。 “汉字在计算机中的基本处理过程”一节,讲述了汉字被计算机处理的过程。本节所讲述的,将是操作系统可见的、和中文(精确地说,应该是:任何多字节字符)有关的一些内容。

2.4.1.1.            Windows系列

在Windows系统,有“代码页(code page)”的概念,MSDN上讲:
A code page is a character set, which can include numbers, punctuation marks, and other glyphs. Different languages and locales may use different code pages. For example, ANSI code page 1252 is used for English and most European languages; OEM code page 932 is used for Japanese Kanji.
在Windows系统中,代码页就是一个字符集,某个代码页就是某个具体字符集的支持。比如,初始安装中文的Windows 2000/XP/2003系统过程中,如果“区域设置”选择“中文(中国)”,那么支持的是GBK字符集,且安装后的系统,是没有GB18030对应的代码页的。如果想支持GB18030,则可以安装Windows的GB18030支持包。此安装包包括: 1)       增加了字体“宋体-18030”和“新宋体-18030”。GB18030扩展字符在Word等文本编辑器中只能通过选择“宋体-18030”或者“新宋体-18030”才能看见。 2)       提供C_g18030.dll,对函数MultiByteToWideChar和WideCharToMultiByte进行了扩展,以支持GB18030编码和UCS2之间的转换。 3)       提供了一个应用程序GBunicnv.exe,可以对纯文本文件和HTML文件进行GB18030和Unicode之间的转换。 4)       提供ms4bsp.dll,扩展了6个API以使得基于CodePage 936(就是GBK)编写的应用可以支持GB18030四字节字符。主要是在窗口中显示字符和弹出消息框用到的函数  
图1 安装GB18030后,可以在“控制面板”的“显示属性”中设定使用GB18030的字体
图2 支持GBK不支持GB18030的DOS窗口
 


 


 
而中文被操作系统支持,通常分为四种阶段的过程,一是识别,二是存储,三是传输,四是显示。如这几项第一和第四个环节出现问题,则可能就会出现乱码(乱码通常有问号和小方框,还有的可能是看不懂的字符串)。通常,出现问号,是发生在识别阶段,不能识别;出现方框,是出现在显示阶段,多数情况是字体存在问题;而看不懂的字符串,很可能是错误识别的结果(如把前一个字的后半截与下一个字的前半截识别为一个字,错位识别了)。 例如:一个DOS窗口,其“属性”窗口如图2,可以看到,上面有“当前代码页”为GBK的支持,使用DOS窗口显示内容的时候,如果被显示的字符中有GB18030中的特有字符,则会出现乱码。  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: