Encoding

<< Click to Display Table of Contents >>

Navigation:  Daten und Datensatz >

Encoding

Encoding

Skript-Dateien dürfen in UTF8[BOM], UTF16LE, UTF16BE, oder LATIN1 kodiert sein. Das System erkennt die Kodierung automatisch (das bedarf allerdings einer gewissen Minimalgröße der Dateien). Eingebundene Dateien (siehe INCLUDE) dürfen auch abweichend vom .tab-File enkodiert sein. Man kann also z.b. in einem Latin1-kodierten Skript eine "labels.inc" mit Labeltexten in chinesischer Sprache in UTF8-Kodierung einbinden.

Skripte in DOS-Ascii (IBM850) werden nicht mehr unterstützt.

Es gibt eine allgemeine Form des ENCODING-Statements, Syntax:

ENCODING <filetype> = [ LATIN1 | UTF8 | UTF16LE | UTF16BE ];
filetype = [ DATAFILE | OPENQFILE | EXCELOUT | HG | EXPORTFILE ]

Skript, Datafile und OpenQ-File z.B. dürfen ohne weiteres unterschiedliche Kodierung auch während eines Laufs haben. GESStabs verwendet intern ausschließlich den UTF8-Code. Das bedeutet, dass alle Eingabedateien während der Interpretation dahingehend gewandelt werden.

GESS kennt:

• UTF16LE

• UTF16BE

• UTF8BOM

• UTF8 ohne BOM

• Latin1

Am sichersten geht man bei Skript-Dateien, wenn man sie UTF8-kodiert speichert, was (fast) alle darstellbaren Zeichen abdeckt. Enthält eine Datei Sonderzeichen, ist eine Speicherung mit BOM empfehlenswert.

Das System kann auch nicht mit anderen ANSI-Codepages als Westeuropa umgehen. Textdateien auf Kyrillisch, Griechisch, Russisch und andere müssen zur Verarbeitung in UTF8 oder Unicode gewandelt werden. Spaltenfixierte Datensätze können nicht in UTF8 gespeichert werden.


EnforceUTF8inOpenQFile

Ebenso wie Skript-Dateien können auch OpenQ-Dateien in verschiedenen Encodierungen gelesen werden. Das OpenQ-System beherrscht die Encoding-Erkennung. Erfahrungsgemäß werden jedoch manchmal OpenQ-Files angeliefert, in denen das Encoding nicht stringent durchgehalten ist. Das kann dann unschön sein, wenn man die Texte verbatim verwenden will.

Syntax:

ENFORCEUTF8INOPENQFILE = [ YES | NO ];

Wenn man ENFORCEUTF8INOPENQFILE auf YES setzt, überwacht GESStabs, dass keine Sonderzeichen auftreten, die nicht den Bildungsregeln von UTF8-Zeichen entsprechen. Wird diese Anforderung verletzt, wird das Einlesen mit einem RunTimeError abgebrochen.