所有字体都使用一个字符集。字符集包含标点符号,数字,大写和小写字母以及所有其他可打印字符。字符集的每个元素由一个数字标识。
Windows中使用的大多数字符集都是美国的超集ASCII字符集,其定义了从32到127的96个数值的字符。有五大字组:
*视窗
*统一
* OEM(原始设备制造商)
*符号
*供应商特定
Windows字符集
Windows字符集是Windows编程中最常用的字符集。它基本上等同于ANSI字符集。空白字符是Windows字符集中的第一个字符。它的十六进制值为0x20(十进制32)。Windows字符集中的最后一个字符的十六进制值为0xFF(十进制255)。
许多字体指定默认字符。每当对不是字体的字符进行请求时,Windows将提供此默认字符。使用Windows字符集的许多字体将period(。)作为默认字符。TrueType字体通常使用一个打开的框作为默认字符。
字体使用一个名为quad的中断字符来分隔单词和对齐文本。使用Windows字符集的大多数字体指定空白字符将用作中断字符。
Windows版本3.1在Windows代码页面中添加了24个字符,如下表所示。
字符 | 名称 | Windows字符代码 |
基线单引号 | 130 | |
弗洛林 | 131 | |
基线双引号 | 132 | |
省略 | 133 | |
匕首 | 134 | |
双匕首 | 135 | |
抑扬 | 136 | |
千分数 | 137 | |
S Hacek | 138 | |
左单身吉内 | 139 | |
OE结扎 | 140 | |
' | 留下单引号 | 145 |
' | 右单引号 | 146 |
" | 左双引号 | 147 |
" | 右双引号 | 148 |
子弹 | 149 | |
- | 在破折号 | 150 |
__ | em | 151 |
波浪号 | 152 | |
商标联结 | 153 | |
哈切克 | 154 | |
右单冠军 | 155 | |
oe结扎 | 156 | |
Y电泳 | 159 |
应该注意的是,左和右单引号的字符首先被添加到发布Windows版本3.0的字符集中。
Unicode字符集
Windows ANSI字符使用8位来表示每个字符;因此,可以使用8位表示的最大字符数是256(2 ^ 8)。这对于西方语言通常是足够的,包括用法语,德语,西班牙语和其他语言使用的变音符号。然而,东方语言使用数千个单独的字符,不能通过使用单字节编码方案进行编码。随着计算机商业的发展,开发了双字节编码方案,使得可以以8位,16位,24位或32位序列表示字符。这需要复杂的传递算法;即使如此,使用不同的代码集可能会在两台不同的计算机上产生完全不同的结果。
为了解决多重编码方案的问题,开发了用于数据表示的Unicode标准。一个16位字符编码方案,Unicode可以代表65,536(2 ^ 16)个字符,这足以包括今天的计算机商业中的所有语言,以及标点符号,数学符号和未来扩展的空间。Unicode为每个字符建立唯一的代码,以确保字符转换始终是准确的。
OEM字符集
OEM字符集通常用于全屏MS-DOS会话以进行屏幕显示。字符32到127在OEM,美国通常是一样的ASCII和Windows字符集。OEM字符集(0到31和128至255)中的其他字符对应于可在全屏MS-DOS会话中显示的字符。这些字符通常不同于Windows字符。
符号字符集
符号字符集包含通常用于表示数学和科学公式的特殊字符。
供应商特定字符集
许多打印机和其他输出设备基于不同于Windows和OEM设备__的字符集提供字体,例如扩展二进制编码十进制交换码(EBCDIC)字符集。要使用这些字符集之一,打印机驱动程序将从Windows字符集转换为供应商特定的字符集。