Das Problem ist nicht Lazarus, sondern wie FPC die Zeichenkodierung der Quelltextdatei handhabt. Ist eine Datei im UTF8 Format (mit oder ohne BOM), dann interpretiert FPC den Quelltext dementsprechend und dann werden auch Konstanten als UTF8 behandelt (dabei wird 'ß' zu mehr als einem Byte). Wenn du nun die Kodierung von UTF8 auf z. B. 1252 (deutsche Standardcodepage unter Windows) änderst (geht in Lazarus per Rechtsklick im Editor unter Dateieinstellungen => Zeichenkodierung) , dann kompiliert der Code wieder (du solltest deinen Algorithmus dann aber in eine eigene
Unit auslagern, da sonst Zuweisungen wie
Edit1.Text := 'Groß'
wiederum für Probleme sorgen, da die LCL mit UTF8 arbeitet).
Alternativ kannst du die oben erwähnte
UTF8ToChar
-Funktion verwenden.
Ansonsten vielleicht auch mal die Artikel
hier im Lazarus/FPC Wiki durchlesen.
Gruß,
Sven