2.8.4 Osteuropäische Zeichensätze
Die richtige Codepage (1250)
Um überhaupt in infra:NET mit den richtigen Zeichen der mittel- und osteuropäischen Sprache arbeiten zu können, muss an allen infra Arbeitsplätzen, die mit diesen Zeichen in Berührung kommen, die Windows Codepage für nicht-unicodefähige Anwendungen (wie z.B. infra:NET) auf 1250 gestellt werden (s.u.). Diese Codepage deckt neben Deutsch mit Umlauten auch die Sprachen Polnisch, Tschechisch, Slowakisch, Ungarisch, Serbokroatisch, Rumänisch und Deutsch ab. Die Standard-Codepage für deutschsprachige Windows Installationen ist 1252 – damit werden die osteuropäischen Symbole NICHT abgedeckt.
Sobald Daten in einer der betroffenen Sprachen erfasst werden (z.B. Kunden-/Teilebezeichnungen, Adressen, nicht-RTF Texte) und diese Daten an allen infra-Arbeitsplätzen korrekt angezeigt oder gedruckt werden sollen, müssen alle infra-Arbeitsplätze auf die Windows Codepage 1250 umgestellt werden.
Umstellung der Codepage
Unter Windows kann die Codepage für nicht-unicodefähige Anwendungen über die Systemsteuerung „Region und Sprache“ im Register „Verwaltung“ über den Knopf „Gebietsschema ändern“ umgestellt werden. Aus der Liste wird das gewünschte Land (also z.B. Polen) ausgewählt – dadurch wird die zu verwendende Codepage bestimmt. Die Auswahl eines der o.g. Länder führt automatisch zur Verwendung der Codepage 1250. Nach OK ist ein Neustart von Windows erforderlich.
SQL-Replikation
Um in der SQL-Datenbank ebenfalls die Zeichen der o.g. Sprachen korrekt gespeichert und angezeigt zu bekommen, muss auch die Sortierfolge (Collation) der SQL-Datenbank auf die passende Codepage 1250 eingestellt werden. Die bei der Einrichtung der SQL-Datenbank standardmäßig verwendete Collation „SQL_Latin1_General_Cp850_BIN“ unterstützt diese Zeichen nicht. Collations, die mit Codepage 1250 arbeiten sind z.B. „Polish_BIN“, „Czech_BIN“ oder „Slovak_BIN“.
Da die zu verwendende Collation bereits beim Erstellen der SQL-Datenbank bestimmt wird, ist es sehr aufwändig im Nachhinein die Collation aller Char-Felder umzustellen. Denkbar ist aber die Standard-Collation der Datenbank mit „ALTER DATABASE“ umzustellen und eine Totalreplikation der im Wesentlichen betroffenen Tabellen (Teile, Kunden, Lieferanten, Texte) durchzuführen.
Um sicher zu stellen, dass weiterhin mit direkter SQL-Abfrage in Auskunft und Stammdaten gearbeitet werden kann, sollte eine vollständige Totalreplikation nach Umstellung der Standardsortierfolge der SQL Datenbank ausgeführt werden.
Besser wäre also bereits beim Aufbau der SQL-Datenbank die richtige Collation zu verwenden. Dazu ist eine idbAdmin.dll ab DLL-Version 7.6.2, eine infra:NET Server-Version ab 7.7.2003 und ein neuer Eintrag „COLLATION:“ in der sbaseSQL.ini und infraSQL.ini notwendig.
Zur Einrichtung der SQL-Datenbank mit Collation „Polish_BIN“ also bitte wie folgt vorgehen:
  • Ggf. Aktualisieren der idbAdmin.dll (min. 7.6.2) im infra-Verzeichnis Grafik\Modul\Win32
  • Ggf. Installation der infra:NET Server-Version 7.7.2003
  • In sbaseSQL.ini und infraSQL.ini folgenden Eintrag aufnehmen (Achtung – Datenquellenabhängig!):
  • [ECHT_TOTAL]
  • COLLATION: Polish_BIN
  • SQL-Datenbank löschen!
  • Totalreplikation ausführen
Über das SQL Server Management Studio kann im Anschluss die eingestellte Collation über das Kontextmenü „Eigenschaften“ der jeweiligen Datenbank geprüft werden (unter „Sortierung“).
OLTP SyncAgent
Beim Einsatz des OLTP SyncAgent für die asynchrone SQL-Replikation findet bei der Übergabe der Daten eine Konvertierung der Zeichensätze zu Unicode statt. Daher muss dem OLTP SyncAgent die Codepage, in der die an den SQL-Server zu übergebenden Daten vorliegen, bekannt sein. Die verwendete Standard-Codepage ist 1252. Um also bei Einsatz des OLTP SyncAgent im o.g. Umfeld sicherzustellen, dass die Daten im korrekten Zeichensatz an den SQL Server geliefert werden, muss die Codepage für den OLTP SyncAgent ebenfalls auf 1250 eingestellt werden.
Dazu ist der OLTP SyncAgent 7.7.1 zu installieren und folgender Eintrag in der Registry des PCs, auf dem der OLTP SyncAgent Dienst installiert ist, vorzunehmen:
Schlüssel: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\infra.NET\Server\OLTPSyncAgent
Wertname (DWORD): „Codepage“
Inhalt: 1250 (dezimal!)
Nachteile/Probleme
infra:NET arbeitet aufgrund seiner Geschichte noch mit einer 8-Bit Zeichendarstellung. Ein 8-Bit Zeichensatz (also ein nicht-Unicode fähiger Zeichensatz) umfasst maximal 255 definierte Zeichen und Symbole. Welche Zeichen und Symbole das sind, wird durch standardisierte Codepages bestimmt. Um alle mittel- und osteuropäische Zeichen abzudecken muss die Codepage 1250 auf andere z.B. in der Codepage 1252 enthaltene Symbole verzichten.
Das ist zum Beispiel das Durchschnittszeichen, Quadrat² und hoch³!
Es gilt also bei der Umstellung zu beachten, dass dadurch die Möglichkeit der Darstellung dieser Zeichen verloren geht!
RTF-Texte
Noch ein Satz zu RTF-Texten: Für RTF-Texte ist die verwendet Codepage völlig irrelevant – mit RTF-Texten können auch in infra:NET alle Zeichen jeder Sprache eingegeben, gespeichert und gedruckt werden, da für die Codierung von nicht-ASCII-Zeichen (also alles was >7 Bit ist) spezielle Escape-Sequenzen verwendet werden.