free pascal, utf8 und Sonderzeichen

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
guennid

free pascal, utf8 und Sonderzeichen

Beitrag von guennid » 21.09.2008 12:04:14

Wie handelt man in einem free pascal Programm und utf8 deutsche Umlaute und andere Sonderzeichen?

Code: Alles auswählen

VAR
 einB : CHAR;
 einWC : WIDECHAR;
 einS : STRING;
... 
 einS := 'Ärgerlich';write(einS); {schreibt "Ärgerlich"}
                     write(copy(einS,1,1)); {gibt "nichts" aus}
                     write(copy(einS,3,1)); {schreibt das "r"}
...

woraus wir messerscharf schließen, dass das "Ä" in den beiden ersten Zeichen stecken muss.
und richtig:

Code: Alles auswählen

                     write(copy(einS,1,2)) schreibt das "Ä"}

einB := 'Ä' bringt genauso wie einWC := 'Ä' den Kompilierfehler:

Code: Alles auswählen

Incompatible types: got "Constant String" expected "Char"
(nur so am Rande, der TYP "Constant String" ist hier unbekannt. Ich vermute auch, dass es den gar nicht gibt. Und ich weiß auch nicht, was ich mir unter einem "konstanten" String vorstellen soll.)
Woraus ich wieder messerscharf schließe: Das 'Ä' ist hier gar kein Zeichen, sondern ein String.
Heißt das jetzt, dass man die Umlaute in der genannten Umgebung per Definition prinzipiell nicht mehr als Zeichen behandeln kann?
Aber wie überprüfe ich dann in einem unbekannten String das Vorkommen von Umlauten/Sonderzeichen? Ein

Code: Alles auswählen

IF einS[i] = [was auch immer]
wird dann ja nicht mehr gehen.

Grüße, Günther

Antworten