Eine einzelne Unicode-Schrift kann wegen ihres großen Zeichensatzes alle Sprachen und Plattformen unterstützen. Unicode-Symboldefinitionsdateien sind mit dem Format und der Syntax normaler Symboldefinitionsdateien weitestgehend identisch.
Der Hauptunterschied liegt in der Syntax der Schrift-Kopfzeile, wie der folgende Code zeigt:
*UNIFONT,6,font-name above,below,modes,encoding,type,0
Die Parameter font-name , above , below und modes entsprechen denen in regulären Schriften. Die beiden verbleibenden Parameter sind wie folgt definiert:
Schriftcodierung. Verwendet einen der folgenden Ganzzahlwerte:
0 Unicode
1 Packed Multibyte 1
2 Symboldatei
Informationen zur Schrifteinbettung. Legt fest, ob die Schrift lizenziert ist. Lizenzierte Schriften dürfen nicht modifiziert oder ausgetauscht werden. Bitcodierte Werte können hinzugefügt werden.
0 Schrift kann eingebettet werden
1 Schrift kann nicht eingebettet werden
2 Einbettung ist schreibgeschützt
Einen weiteren Unterschied stellt die Handhabung der Code 7-Subsymbolreferenz dar. Enthält eine Symbolbeschreibung eine Code 7-Subsymbolreferenz, dann werden die Daten, die auf den Code 7 folgen, als 2-Byte-Werte interpretiert. Das hat Auswirkungen auf die Gesamtzahl der Datenbytes ( defbytes ) in der Kopfzeile der Symbolbeschreibung. Die folgende Symbolbeschreibung findet man beispielsweise in der Datei romans.shp:
*00080,4,keuroRef 7,020AC,0
Im zweiten Feld der Kopfzeile erscheint die Gesamtzahl der Bytes in der Symbolbeschreibung. Wenn Sie keine Erfahrung mit Unicode-Schriftbeschreibungen haben, ziehen Sie es vermutlich vor, mit drei Byte anstelle von vier zu arbeiten. Dies würde jedoch zu einem Fehler bei der Kompilierung der SHP-Datei führen. Dies gilt, obwohl die angegebene Symbolnummer nicht im zwei-Byte-Bereich (unter 255) liegt. In der Kopfzeile muss dies beachtet werden, da der Kompilierer für diesen Wert immer zwei-Bytes verwendet.
Der einzige andere Unterschied zwischen Unicode- und regulären Symboldefinitionen sind die Symbolnummern. In den vom Programm bereitgestellten Unicode-Symboldefinitionen werden keine Dezimalwerte, sondern Hexadezimalwerte für die Symbolnummern verwendet. Dies ist zwar nicht unbedingt erforderlich, erleichtert es jedoch, auf die Symbolnummern mit den \U+-Steuerzeichenwerten zu verweisen.