字符集和字体
Windows 允许在 双字节字符集(DBCSs)和 Unicode中对非标准字符进行本地定义。 对于 DBCS,这些非标准字符称为最终用户定义字符(EUDC)。 Unicode 通过其专用使用区域(PUA)提供类似的功能。 应用程序使用关联的 DBCS 或 Unicode 字符值标识指定的字符。
可以分配的 DBCS 字符值取决于指定的字符集。 每个东亚 Windows 代码页 至少有一个保留值范围用作 EUDC。 这些范围由 EUDCCodeRange 注册表项定义。 出于此目的,Unicode 值始终来自 Unicode PUA、值 U+E000 到 U+F8FF、U+F0000 到 U+FFFFD,U+100000 到 U+10FFFD。
若要创建 EUDC 或 PUA 字符,用户选择位于指定范围内的字符值,并将 字形 添加到对应于该字符值的条目中的字体。 用户使用 EUDC 编辑器或使用从字体供应商购买的字体包创建字形。 任何 DBCS 字体都可以包含 EUDC,任何 Unicode 字体都可以包含 PUA 字符。 如果字体仅包含 EUDC/PUA 字体,则该字体称为“单独”的 EUDC/PUA 字体。 如果字体包含标准字符和 EUDC,则字体是“集成”EUDC/PUA 字体。
系统默认的 EUDC/PUA 字体是作系统自动与所有 DBCS 和 Unicode 字体关联的字体,但显式关联 EUDC/PUA 字体的字体除外。 应用程序通过在 EUDC 注册表项下设置 SystemDefaultEUDCFont 名称的值来设置系统默认的 EUDC/PUA 字体。 同样,应用程序可以通过在 EUDC 键下指定字体名称和关联的字体文件,将单独的 EUDC/PUA 字体与相应的字体相关联。 作系统始终首先尝试查找当前所选字体中的 EUDC/PUA。 如果未找到字体,则作系统将在关联的 EUDC/PUA 字体中查找字符(如果已为当前所选字体定义)。 如果仍然找不到字符,作系统会以系统默认的 EUDC/PUA 字体查找它。
TrueType 字体可以安装为.ttf文件或 .tte 文件。 由于作系统隐藏 .tte 文件,应用程序无法使用 GDI API 函数枚举或检查已安装的字体。 在许多作系统上,系统默认安装 EUDC/PUA 字体和单独的 EUDC/PUA 字体作为 .tte 文件。 EUDC 编辑器和控制面板等应用程序必须使用注册表项来添加、修改和删除此类字体。
使用 EUDC 和 PUA 字符并不能可靠地保留不同计算机或字符集的含义。 有关使用 EUDC 和 PUA 字符的进一步警告,请参阅 结束User-Defined 和专用使用区域字符。
相关主题