字符集和字体

Windows 允许 在双字节字符集中 (DBCS) 和 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 字符的进一步注意事项,请参阅 最终用户定义和专用区域 字符。

最终用户定义和专用区域字符