Die Eingabe kann Unicode-basiert oder nicht Unicode-basiert sein. Eingaben, die Unicode-basiert sind, erfolgen zumeist in den UCS-Transfer-Formaten (UTF). Wobei der Unterschied zwischen UTF16 und UCS2 im Allgemeinen vernachlässigbar ist. Der ReportWriter unterstützt folgende UCS-Transfer-Formate:
UTF8 | 8-Bit Transfer |
UTF8+BOM | 8-Bit Transfer + vorangestellte Byte-Order-Mark automatische Erkennung durch den ReportWriter |
UTF16 Little Endian | 16-Bit Transfer, niederwertiges Byte zuerst |
UTF16 Big Endian | 16-Bit Transfer, höherwertiges Byte zuerst |
UTF16+BOM | 16-Bit Transfer + vorangestellte Byte-Order-Mark |
Eingaben, die nicht Unicode-basiert sind, kommen immer aus einer spezifischen 8-Bit oder 16-Bit CodePage und müssen über einen CodePage-Konverter nach UCS-2 gewandelt werden.
Hierfür besitzt der ReportWriter zwei Mechanismen:
Konvertieren über Betriebssystem-Funktionen (Zeichensätze local und oem)
Konvertieren über eigene Konvertierungstabellen
Bei der Konvertierung über Betriebssystem-Funktionen wird typischerweise die CodePage local verwendet. Einzig Microsoft-Windows-basierte Betriebssysteme haben für manche Länder zwei CodePages: eine für den grafischen Teil und eine für den Teil der Eingabeaufforderung. In diesem Fall ist local die CodePage des grafischen Teils und oem die CodePage der Eingabeaufforderung. Auf allen anderen Plattformen sind die CodePages local und oem gleich.
Im ReportWriter ist ein CodePage-Konverter enthalten, der in der Lage ist, aus unterschiedlichen nicht Unicode-basierten 8-Bit und 16-Bit CodePages (Multibyte-CodePages) in die UCS-2 CodePage zu konvertieren. Es gibt sehr viele unterschiedliche nicht Unicode-basierte CodePages, so dass es nicht möglich ist, alle bekannten CodePages im CodePage-Konverter abzubilden. Viel schlimmer noch ist die Tatsache, dass ein und dieselbe CodePage bei unterschiedlichen Standardisierungs-Gremien und Herstellern auch unterschiedliche Namen trägt. Die Suche nach der richtigen CodePage kann kompliziert sein. Beim Setzen einer CodePage werden alle Underline- und Minus-Zeichen aus dem CodePage-Namen entfernt und dann eine zugehörige CodePage gesucht. Die folgende Tabelle stellt die realisierten CodePages des ReportWriters dar:
CodePage | Name und alternative Namen | Beschreibung |
CP437 | CP437 IBM437 | MS DOS 437 Latin US |
CP737 | CP737 IBM737 | MS DOS 737 Griechisch (437G) |
CP775 | CP775 IBM775 | MS DOS 775 Baltisch |
CP850 | CP850 IBM850 PC850 | MS DOS 850 Latin 1 |
CP852 | CP852 IBM852 | MS DOS 852 Latin 2 |
CP855 | CP855 IBM855 | MS DOS 855 Kyrillisch |
CP857 | CP857 IBM857 | MS DOS 857 Türkisch |
CP860 | CP860 IBM860 | MS DOS 860 Portugiesisch |
CP861 | CP861 IBM861 | MS DOS 861 Isländisch |
CP862 | CP862 IBM862 PC862 | MS DOS 862 Hebräisch |
CP863 | CP863 IBM863 | MS DOS 863 Kanadisches Französisch |
CP864 | CP864 IBM864 | MS DOS 864 Arabisch |
CP865 | CP865 IBM865 | MS DOS 865 Skandinavisch |
CP866 | CP865 IBM866 | MS DOS 866 Kyrillisch |
CP869 | CP869 IBM869 | MS DOS 869 Griechisch Modern |
CP874 | CP874 WINDOWS874 | MS Windows/OEM 874 Thailändisch |
CP950 | CP950 BIG5 BIGFIVE TRADITIONALCHINESE | Microsoft CodePage 950 |
CP936 | CP936 GBK SIMPLIFIEDCHINESEGBK SIMPLIFIEDCHINESE | Microsoft CodePage 936 Simplified Chinese + Euro-Zeichen |
CP949 | CP949 KOREAN | Microsoft CodePage 949 |
CP932 | CP932 SHIFTJIS JAPANESE | Microsoft CodePage 932 |
CP1051 | CP1051 IBM1051 ROMAN8 | HP Roman-8 |
CP1250 | CP1250 WINDOWS1250 | MS Windows 1250 Osteuropa |
CP1251 | CP1251 WINDOWS1251 | MS Windows 1251 Kyrillisch |
CP1252 | CP1252 WINDOWS1252 | MS Windows 1252 Westeuropa |
CP1253 | CP1253 WINDOWS1253 | MS Windows 1253 Griechisch |
CP1254 | CP1254 WINDOWS1254 | MS Windows 1254 Türkisch |
CP1255 | CP1255 WINDOWS1255 | MS Windows 1255 Hebräisch |
CP1256 | CP1256 WINDOWS1256 | MS Windows 1256 Arabisch |
CP1257 | CP1257 WINDOWS1257 | MS Windows 1257 Baltisch |
CP1258 | CP1258 WINDOWS1258 | MS Windows/DOS 1258 Vietnamesisch |
ISO-646 | ISO646 CEISO646 USASCII ASCII IBM367 CP367 ISOIR6 ISO646US | 7-Bit ASCII |
ISO-8859-1 | ISO88591 CEISO88591 ISOLATIN1 LATIN1 | Latin 1 Westeuropa |
ISO-8859-2 | ISO88592 CEISO88592 ISOLATIN2 LATIN2 | Latin 2 Osteuropa |
ISO-8859-3 | ISO88593 CEISO88593 ISOLATIN3 LATIN3 | Latin 3 Südeuropa |
ISO-8859-4 | ISO88594 CEISO88594 ISOLATIN4 LATIN4 | Latin 4 Nordeuropa |
ISO-8859-5 | ISO88595 CEISO88595 ISOLATIN5 LATIN5 | Latin 5 Kyrillisch |
ISO-8859-6 | ISO88596 CEISO88596 ISOLATIN6 LATIN6 | Latin 6 Arabisch |
ISO-8859-7 | ISO88597 CEISO88597 ISOLATIN7 LATIN7 | Latin 7 Griechisch |
ISO-8859-8 | ISO88598 CEISO88598 ISOLATIN8 LATIN8 | Latin 8 Hebräisch |
ISO-8859-9 | ISO88599 CEISO88599 ISOLATIN9 LATIN9 | Latin 9 Türkisch |
ISO-8859-10 | ISO885910 CEISO885910 ISOLATIN10 LATIN10 | Latin 10 Skandinavisch |
ISO-8859-11 | ISO885911 CEISO885911 ISOLATIN11 LATIN11 | Latin 11 Thailändisch |
DECSUPPL | DECSUPPL DECSUPPLIMENTAL | Ähnlich Latin1 |
KOI8R | KOI8R | Unix/Relcom Kyrillisch |
LOCAL | LOCAL HOST L | Lokale CodePage |
OEM | OEM | Nur auf Windows-Systemen |
UTF8 | UTF8 | Universal Codeset Transfer Format |
UTF16 | ISO10646UCS2 CEISO10646UCS2 UCS2 UTF16 UTF16 | Universal Codeset Transfer Format |
UTF16B | ISO10646UCS2B CEISO10646UCS2B UCS2B UTF16B UTF16B | Universal Codeset Transfer Format |
UTF16L | ISO10646UCS2L CEISO10646UCS2L UCS2L UTF16L UTF16L | Universal Codeset Transfer Format |
Was ist, wenn eine CodePage im ReportWriter nicht vorhanden ist?
versuchen Sie bei der Ausgabe eine andere unterstützte CodePage auszuwählen
benutzen Sie einen Konverter, der Ihre CodePage in ein Unicode-basiertes Format umwandelt
fordern Sie von uns eine Erweiterung des CodePage-Konverters an
Für nicht Unicode-basierte CodePages muss dem ReportWriter die CodePage mitgeteilt werden. Er kann sie nicht automatisch erkennen.