PDA

View Full Version : Codepage für RPG Compiler



niceguy
09-06-05, 12:59
Wo kann man festlegen, welche Codepage der RPG-Compiler verwendet. Bei einigen Sourcen werden Variablen mit § verwendet, was z.B. in Codepage 870 ein @ und damit ein unzulässiger Variablenname ist. Ich finde aber keine Einstellung, dass der Compiler auch Codepage 870 verwendet.

Fuerchau
09-06-05, 13:10
Der Compiler hat keine eigene Codepage.
Entscheidend ist die CCSID des Job's der die Umwandlung ausführt sowie der SRCPF's.
Beim Lesen einer Quelle (wie jede andere DB auch) wird der Text in die CCSID des Job's umgewandelt und mit der CCSID des Job's die Gültigkeit der Quelle geprüft sowie die Hexwerte von Code-Konstanten gebildet !

niceguy
09-06-05, 13:26
Ich habe die Source-Files auf Codepage 870 umgesetzt, den Job mit CHGJOB auf Codepage 870 umgestellt, die DEVD auf Codepage 870 umgestellt und dann mit CRTRPGPGM interaktiv umgewandelt - trotzdem meckert der Compiler bei den §-Zeichen. Hat noch wer eine Idee?

Jobdefinition
Sprachen-ID . . . . . . . . . . . . . . . . . . . : ROM
Landes- oder Regions-ID . . . . . . . . . . . . . : RO
ID des codierten Zeichensatzes (CCSID) . . . . . : 870
Standard-ID des codierten Zeichensatzes . . . . . : 870

Source-File
ID des codierten Zeichensatzes . . . . . . : CCSID 870

§ steht im Sourcefile laut Codepage 870 mit Hex B5
§ROW
BDDE4
59660

Fuerchau
09-06-05, 14:20
Kann sein, dass der Compiler nur mit westeuropäischen CCSID's zurechtkommt.
Man sollte bei Mehrsprachigkeit daher auf sog. variante Zeichen in der Quelle komplett verzichten !!!
Variante Zeichen sind Zeichen, die in verschiedenen CCSID's unterschiedliche Hex-Werte haben.
Nicht variante Zeichen haben in jeder CCSID den gleichen Hexwert !

Rat:
Verzichte auf Sonderzeichen oder mach alles in 273.

Warum benötigst du die Quelle denn in 870 ???

niceguy
09-06-05, 15:11
In einigen Programmen wird im Programm z.B. auf deutsche Sonderzeichen in Dateien selektiert - wenn die Datei auf Codepage 870 ist und das Programm auf 273 geht die Selektion nicht auf.

Fuerchau
09-06-05, 15:50
Genau dieses muss man umstellen !
Sonderzeichen dürfen im Programm nicht hart codiert werden sondern sollten über eine Datei mit entsprechender CCSID gelesen werden. Dann klappts auch mit den Zugriffen.