Mathias hat geschrieben:Dies ist natürlich nicht ein Problem von Pascal, sondern von den heutigen OS.
Doch das ist ein Problem des Compilers.
Bei
s := 'ö';
nimmt der Compiler - ohne, dass der Anwender das weiß - für 'ö' die UTF-8 Codierung an (Literale sind default-mäßig als "lange" Strings mit UTF-8 Codierung angelegt. Bei der Zuweisung an einen Shortstring wird keine automatische UTF-8 nach ANSI - Umwandlung durchgeführt, Short-Strings also auch als UTF-8 codiert angesehen (also anders als "damals", wo sie als ANSI-codiert angesehen wurden).
Das alles muss durchaus nicht so sein, unabhängig vom Betriebssystem. Wenn es vom Betriebssystem abhängig ist, verrät FPC seinen Slogan "code once, compile everywhere". Kompatibel zu Delphi 7 (ANSI), Delphi-XE (UTF-16) oder älteren Versionen von fpc (ANSI) ist es ohnehin nicht.
-Michael