Einzelnen Beitrag anzeigen

Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#1

Lettische OEM-Zeichen auf russischem Drucker

  Alt 22. Okt 2007, 17:30
Also, erstmal vorneweg: Ich würde auch lieber Unicode verwenden und auf irgendwelche OEM-Codierungen verzichten, aber das betroffene Programm lebt seit TurboPascal-Zeiten und ist halt gewachsen.

Nun wollen unsere Kunden in Lettland (die russische Betriebssysteme benutzen) einige Strings, die aus OEM-codierten Dateien kommen, auf Lettisch gedruckt haben. Ich löse das jetzt testhalber so (in der Kurzfassung):
Delphi-Quellcode:
MultiByteToWideChar(775, ...); // 775 = OEM-Codepage baltisch
WideCharToMultiByte(1257, ...); // 1257 = Windows-Codepage baltisch
Printer.Charset := 186 // baltisches Charset
Writeln(Lst, ...);
Das funktioniert auch. Bevor ich das jetzt fest in die Anwendung einbaue und entsprechende Konfigurationsmöglichkeiten schaffe, wollte ich aber mal fragen, ob das irgendwie eleganter geht. Z.B., ob das Betriebssystem irgendeinen Zusammenhang zwischen den drei Konstanten 775/1257/186 kennt, ob ich die beiden ersten Schritte zu einem Analogon von OemToChar mit einem Extra-Parameter zusammenfassen kann (ohne Umweg über einen temporären WideString), etc.pp.

Vielen Dank im Voraus für die zahlreichen Kommentare!
Uli.
Uli Gerhardt
  Mit Zitat antworten Zitat