文件名称:Unicode简介-em78p153 c语言范例
文件大小:5.55MB
文件格式:PDF
更新时间:2024-06-22 11:40:59
Windows
第二章 Unicode简介 在第一章中,我已经预告,C语言中在Microsoft Windows程序设计中扮演着重要角色的任何 部分都会讲述到,您也许在传统文字模式程序设计中还尚未遇到过这些问题。宽字符集和Unicode 差不多就是这样的问题。 简单地说,Unicode扩展自ASCII字符集。在严格的ASCII中,每个字符用7位表示,或者计算 机上普遍使用的每字符有8位宽;而Unicode使用全16位字符集。这使得Unicode能够表示世界上 所有的书写语言中可能用于计算机通讯的字符、象形文字和其它符号。Unicode最初打算作为ASCII 的补充,可能的话,最终将代替它。考虑到ASCII是计算机中最具支配地位的标准,所以这的确是 一个很高的目标。 Unicode影响到了计算机工业的每个部分,但也许会对操作系统和程序设计语言的影响最大。 从这方面来看,我们已经上路了。Windows NT从底层支持Unicode(不幸的是,Windows 98只 是小部分支持Unicode)。先天即被ANSI束缚的C程序设计语言通过对宽字符集的支持来支持 Unicode。下面将详细讨论这些内容。 自然,作为程序写作者,我们通常会面对许多繁重的工作。我已试图透过使本书中的所有程序 「Unicode化」来减轻负担。其含义会随着本章对Unicode的讨论而清晰起来。 字符集简史 虽然不能确定人类开始讲话的时间,但书写已有大约6000年的历史了。实际上,早期书写的内 容是象形文字。每个字符都对应于发声的字母表则出现于大约3000年前。虽然人们过去使用的多种 书写语言都用得好好的,但19世纪的几个发明者还是看到了更多的需求。Samuel F. B. Morse在 1838年到1854年间发明了电报,当时他还发明了一种电报上使用的代码。字母表中的每个字符对 应于一系列短的和长的脉冲(点和破折号)。虽然其中大小写字母之间没有区别,但数字和标点符 号都有了自己的代码。 Morse代码并不是以其它图画的或印刷的象形文字来代表书写语言的第一个例子。1821年到 1824年之间,年轻的Louis Braille受到在夜间读写信息的军用系统的启发,发明了一种代码,它用 纸上突起的点作为代码来帮助盲人阅读。Braille代码实际上是一种6位代码,它把字符、常用字母 组合、常用单字和标点进行编码。一个特殊的escape代码表示后续的字符代码应解释为大写。一 个特殊的shift代码允许后续代码被解释为数字。 Telex代码,包括Baudot (以一个法国工程师命名,该工程师死于1903年)以及一种被称为 CCITT #2的代码(1931年被标准化),都是包括字符和数字的5位代码。 美国标准 早期计算机的字符码是从Hollerith卡片(号称不能被折迭、卷曲或毁伤)发展而来的,该卡片 由 Herman Hollerith 发明 并 首 次 在 1890 年 的 美 国 人 口 普 查 中 使 用 。 6 位 字 符 码 系 统 BCDIC (Binary-Coded Decimal Interchange Code:二进制编码十进制交换编码)源自Hollerith代码, 在60年代逐步扩展为8位EBCDIC,并一直是IBM大型主机的标准,但没使用在其它地方。