DynamicEBCDICDecoder

Gruppe

Preparser

Klassenname

com.ebd.hub.datawizard.parser.DynamicEBCDICDecoder

Funktion

Dieser Preparser prüft die Zeichenkodierung einer Nachricht (ASCII oder EBCDIC) und gibt diese gegebenenfalls umkodiert aus.

Konfigurationsdatei

DynamicEBCDICDecoder.properties

Beschreibung

Dieser Preparser prüft die Zeichenkodierung einer Nachricht (ASCII oder EBCDIC) und gibt diese gegebenenfalls umkodiert aus.

Der Ablauf der Prüfung ist dabei folgender.

  • Es werden so viele Zeichen aus der Datei eingelesen, wie im Parameter checkchars angegeben.

  • Dann wird überprüft, welche Zeichen davon in ASCII darstellbar sind und welche nicht.

  • Sind am Ende mehr Zeichen in ASCII darstellbar, wird von ASCII ausgegangen, ansonsten von EBCDIC. Wichtiger Hinweis: Ein EBCDIC-kodiertes Leerzeichen wird in ASCII als @ dargestellt, und deshalb vom hier beschriebenen Algorithmus als in ASCII darstellbar erkannt. Wenn man also eine komplette Datei einliest, gewinnt ASCII fälschlicherweise immer dann, wenn genügend Leerzeichen in der EBCDIC-Datei vorhanden sind. Verhindern kann man das mit vorteilhaften Werten für Parameter checkcars und skipchars, d. h. man versucht die Werte so zu setzen, dass der geprüfte Text möglichst wenig Leerzeichen hat.

Parameterbeschreibung

Parametername

Beschreibung

Default-Wert

checkchars

Anzahl der Zeichen, die überprüft werden sollen.

100

skipchars

Anzahl der Zeichen, die vom Anfang der Datei aus übersprungen werden bei der Formatprüfung.

0

asciicharset

Zeichenkodierung um ASCII-Eingangsdaten zu erkennen.

8859_1

ebcdiccharset

Zeichenkodierung um EBCDIC-Eingangsdaten zu erkennen.

cp273

outcharset

Zeichenkodierung für Ausgangsdaten des Preparsers.

8859_1

Beispiel

DynamicEBCDICDecoder.properties
checkchars=7
skipchars=0
asciicharset=8859_1
ebcdiccharset=cp273
outcharset=8859_1