![]() |
Lettische OEM-Zeichen auf russischem Drucker
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:
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.
MultiByteToWideChar(775, ...); // 775 = OEM-Codepage baltisch
WideCharToMultiByte(1257, ...); // 1257 = Windows-Codepage baltisch Printer.Charset := 186 // baltisches Charset Writeln(Lst, ...); Vielen Dank im Voraus für die zahlreichen Kommentare! :wink: Uli. |
Re: Lettische OEM-Zeichen auf russischem Drucker
Eine MultiByteToMultiByte Funktion wäre mir unbekannt und würde sicher selbst in einem OS nicht anders als über den Unicode"umweg" realisiert werden, mit diesem tempären WideString (die Funktion selbst bräuchte letztlich nur wenige Zeilen - welche du schnell schreiben kannst).
Es wäre ziemlicher Aufwand für jede mögliche Copdepage<->Codepage Konvertierung die notwendigen Tabellen herumzuschleppen, es genügen nur die, mit der diese jeweils auf eine allgemeingültige (dafür wird eben Unicode verwendet) eineindeutig abgebildet werden. Langer Rede kurzer Sinn, ich denke, du hast schon die beste Methode gefunden. |
Re: Lettische OEM-Zeichen auf russischem Drucker
Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:23 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz