単一の Unicode フォントでも、文字セットの規模が大きいため、あらゆる言語およびプラットフォームをサポートできます。Unicode シェイプ定義ファイルの形式と構文は、標準のシェイプ定義ファイルとほぼ同じです。
最大の相違点は、次のコードで示すように、フォント ヘッダの構文です。
*UNIFONT,6,font-name above,below,modes,encoding,type,0
「フォント名」、 「上部」、 「下部」、 「モード」の各パラメータは、標準フォントの場合と同じです。残りの 2 つのパラメータは、次のように定義します。
フォントのコード化方式です。次の整数値のいずれかを使用します。
0 Unicode
1 パック形式マルチバイト 1
2 シェイプ ファイル
フォントの埋め込みについての情報です。フォントがライセンスされているかどうかを指定します。ライセンスされているフォントは編集したり交換することはできません。ビット コード値は加算可能です。
0 フォントを埋め込むことができます
1 フォントを埋め込むことはできません
2 埋め込みは読み込み専用です
別の重要で混乱しやすい相違点は、コード 7 のサブシェイプ参照の扱いです。シェイプ定義にコード 7 のサブシェイプ参照が含まれていると、コード 7 の後に続くデータは 2 バイト値として解釈されます。これは、シェイプ定義ヘッダ内の総データ バイト数( 定義バイト数 )に影響します。たとえば、romans.shp ファイルに次のシェイプ定義があります。
*00080,4,keuroRef 7,020AC,0
ヘッダの 2 番目のフィールドは、シェイプ定義の総バイト数を表します。Unicode フォント形式で記述しないときは、4 バイトではなく 3 バイトを指定することになりますが、SHP ファイルのコンパイル中にエラーが発生してしまいます。これは、参照しているシェイプ番号が 2 バイトの範囲(255 以下)でない場合でもあてはまり、コンパイラは常にこの値に対して 2 バイトを使用するため、ヘッダを指定する際はこのことに注意してください。
Unicode フォント シェイプ定義と標準のシェイプ定義との他の相違点は、シェイプ番号のみです。プログラムが提供する Unicode フォント シェイプ定義では、10 進数の値ではなく 16 進数のシェイプ番号を使用します。16 進数は必須ではありませんが、¥U+ 制御文字と 16 進数値を使用してシェイプ番号を容易に参照できるようになります。