由于 Unicode 提供了大字符集,所以一种 Unicode 字体就能支持所有语言和平台。实际上,Unicode 形定义文件在格式和语法上与普通形定义文件相同。

主要的区别在于字体标题的语法,如下所示:

*UNIFONT,6,font-nameabove,below,modes,encoding,type,0 

font-nameabovebelowmodes 参数与常规字体中的参数一样。余下的两个参数定义如下:

encoding

字体编码。使用下列整数值之一:

0 Unicode

1 紧缩的多字节 1

2 形文件

类型

字体内嵌信息。指定字体是否经过授权。授权字体不能修改或交换。按位编码的值可以相加。

0 可以内嵌的字体

1 不能内嵌的字体

2 内嵌时为只读

另一个重要区别是代码 7 子形引用的处理。如果形说明包含一个代码 7 子形引用,代码 7 后的数据将被解释为双字节值。这将影响形说明标题中的数据字节 (defbytes) 总数。例如,下列形说明是在“romans.shp”文件中包含的:

*00080,4,keuroRef
7,020AC,0

标题中的第二个字段表示形说明中的字节总数。如果用户不将其和 Unicode 字体说明一起使用,则可能使用三个字节而不使用四个字节,但这将导致在编译 SHP 文件时发生错误。尽管用户引用的形编号不在双字节范围内(小于 255),但编译器仍对该值使用双字节,因此用户必须在标题中计算。

在 Unifont 形定义和普通形定义之间的另一个区别是形的编号。程序提供的 Unifont 形定义使用十六进制形编号,而不使用十进制编号。尽管不是必须使用十六进制编号,使用它可以更加方便地交叉参考具有 U+ 控制字符值的形编号。

,