Im Gegensatz zu ASCII-basierten Betriebssystemen, wo wegen der partiellen Identität zwischen ASCII und Unicode nicht immer genau zwischen Text- und Binär-Ein-/Ausgabe unterschieden werden muss, ist diese Unterscheidung im BS2000/OSD (und anderen nicht auf ASCII basierenden Betriebssystemen - wie z.B. OS/390) wichtig. Wird das von Java-Programmen nicht berücksichtigt, sind sie nicht portabel und werden auf BS2000 nicht ohne Änderung korrekt laufen.
Java arbeitet intern im Unicode. Für die Kommunikation mit der Außenwelt kann Java beliebige Codes verwenden. Für die Ein-/Ausgabe von Text-Daten wurden die Klassen InputStreamReader und OutputStreamWriter eingeführt, die entsprechende Code-Umwandlungen vornehmen. Die dabei verwendete Standard-Code-Umwandlung wird durch den Wert der System-Property file.encoding bestimmt. Sie ist standardmäßig mit OSD_EBCDIC_DF04_1 festgelegt. Diese Einstellung kann beim Aufruf von Java entweder global über -Dfile.encoding=XXX geändert werden oder lokal durch Angabe eines entsprechenden Codesets bei der Instanziierung der Klassen InputStreamReader und OutputStreamWriter.
Unterstützte Codesets
Folgende Codesets werden im BS2000 zusätzlich unterstützt und stehen demzufolge in anderen Java-Implementierungen nicht zur Verfügung:
OSD_EBCDIC_DF04_1
Standard-Codeset im BS2000. Er entspricht dem Zeichensatz EBCDIC.DF.04-1 mit der Modifikation, dass die EBCDIC-Zeichen x'15' und x'25' vertauscht sind, also x'15' als Newline-Zeichen interpretiert wird. Dies entspricht der aktuellen Praxis im POSIX bzw. in der C-Programmierung im BS2000.
Dieser Zeichensatz ist kompatibel zum ISO-Zeichensatz 8859-1, dem Standard-Zeichensatz in den Unix-Systemen. Kompatibel heißt, er enthält den gleichen Zeichensatz nur in anderer Codierung, ist also 1:1 abbildbar.
OSD_EBCDIC_DF03_IRV
Zeichensatz EBCDIC.DF.03.IRV (Internationale Referenz Version), ebenfalls mit x'15' als Newline-Zeichen.
OSD_EBCDIC_DF04_15
entspricht dem Zeichensatz EBCDIC.DF.04-15 mit der Modifikation, dass die EBCDIC-Zeichen x'15' und x'25' vertauscht sind, also x'15' als Newline-Zeichen interpretiert wird. Dies entspricht der aktuellen Praxis im POSIX bzw. in der C-Programmierung im BS2000.
Dieser Zeichensatz ist voll kompatibel zum ISO-Zeichensatz 8859-15. Kompatibel heißt, er enthält den gleichen Zeichensatz nur in anderer Codierung, ist also 1:1 abbildbar.
Angabe des Codeset
Die Kommandos javac, javadoc und native2ascii unterstützen die Option -encoding. Mit dieser Option geben Sie den Zeichensatz für die Dateien an, auf die das Kommando zugreifen soll.