Heinrich Wolf hat geschrieben:
ich finde es schade, dass die Umlaute in FormatSettings.LongMonthNames[] im IBM Code belegt sind und nicht in UTF8. Bei Delphi 5 auf meinem deutschen Windows sind sie im CP1252 Code belegt.
Sie sind nicht nur in Delphi 5, sondern auch in Lazarus im CP1252 Code belegt. Ich glaubte, in Lazarus sei es ÍBM Code, weil sie da in einer Console ohne explizite Umwandlung korrekt angezeit werden. Findet hier eine implizite Umwandlung statt? In Delphi 5 muss ich die Umlaute für eine Console Anwendung umwandeln.
Heinrich Wolf hat geschrieben:
Wenn ich in einer internationalen Lazarus Anwendung einen LongMonthName auf der Windows Oberfläche anzeigen möchte, muss ich GuessEncoding aufrufen und an ConvertEncoding übergeben. Ist das zuverlässig, oder kommt dabei evtl. eine falsche Codierung raus? Wie kann ich stattdessen die Codierung, die im Betriebssystem eingestellt ist, abfragen, um sie an ConvertEncoding zu übergeben?
Ich traue dem GuessEncoding nicht. Außerdem finde ich es zuviel Overhead. Inzwischen hab ich in der LConvEncoding Unit GetDefaultTextEncoding gefunden und werde das zusammen mit ConvertEncoding verwenden.